htaccess problem with filename
-
05-07-2019 - |
Question
when I first set up my site I decided to add index.html
to the URL but now I have problems with when people remove the index.html
and try and access the folder...
For example:
RewriteRule ^archives/([0-9]+)/([0-9]+)/index.html archive.php?mid=$1-$2
So when archives/07/2009/
it will cause an error, how can I avoid this error?
Cheers
Solution
Make the index.html
optional in your RewriteRule
:
RewriteRule ^archives/([0-9]+)/([0-9]+)/(?:index\.html)?$ archive.php?mid=$1-$2
Also, in your original rewrite rule, you forgot your end of string anchor $
. I've added it above.
OTHER TIPS
Try this rule witht an optional index.html
:
RewriteRule ^archives/([0-9]+)/([0-9]+)/(index\.html)?$ archive.php?mid=$1-$2
But I recommend you to stick just with one of both notations, with or without the trailing index.html
and redirect if wrong:
# remove index.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*/)?index\.html$ /$1 [L,R=301]
# add index.html
RewriteRule (.*)/$ $1/index.html [L,R=301]
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow