1

I'm trying to use htaccess to rewrite example.com/data to example.com/index.php?section=data. I'm using Statamic which seems to make things a bit more complicated. I get a 404 when using the below htaccess, what do I do wrong?

If I change "RewriteRule ^data index.php?section=data" to "RewriteRule ^data http://example.com/index.php?section=data" it works fine but it seems to trigger a redirect and the url changes to "http://example.com/index.php?section=data" which I would like to avoid.

 # Turn on the Rewrite Engine
 RewriteEngine On


 # ------------------------------------------------------------------------------
 # Dynamic RewriteBase
 # -------------------------------------------------------------------------     -----
 # For most servers, this will be able to dynamically find your site's root,
 # but if it doesn't for you, comment out these next two lines...
 RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
 RewriteRule ^(.*)$ - [E=BASE:%1]

 # ...and uncomment out the following line, then set as you need to
 #RewriteBase /


 # ------------------------------------------------------------------------------
 # Protect System Files
 # ------------------------------------------------------------------------------
 RewriteRule ^_app - [F,L]
 RewriteRule ^_config - [F,L]
 RewriteRule ^_cache - [F,L]
 RewriteRule ^_content - [F,L]
 RewriteRule ^_logs - [F,L]
 RewriteRule ^_storage - [F,L]
 RewriteRule ^admin/themes/[^/]*/(?:layouts|templates) - [F,L]
 RewriteRule ^.*?\.yml$ - [F,L]
 RewriteRule ^.*?\.yaml$ - [F,L]
 RewriteRule ^.*/?\.git+ - [F,L]

 # This will prevent all .html files from being accessed.
 # You may want to remove this line if you want to serve
 # static files outside of Statamic
 #RewriteRule ^(.*)?\.html$ - [F,L]


 # ------------------------------------------------------------------------------
 # Remove Trailing Slashes from URL
 # -------------------------------------------------------------------------     -----
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)\/(\?.*)?$ $1$2 [R=301,L]


 # ------------------------------------------------------------------------------
 # Remove the Index File
 # ------------------------------------------------------------------------------
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ index.php [QSA,L]

 RewriteRule ^data index.php?section=data
gustavhmr
  • 11
  • 1

0 Answers0