题
当我第一次设置我的网站时,我决定将 index.html
添加到网址,但现在我遇到问题,当人们删除 index.html
并尝试访问文件夹...
例如:
RewriteRule ^archives/([0-9]+)/([0-9]+)/index.html archive.php?mid=$1-$2
因此,当 archives / 07/2009 /
会导致错误时,如何避免此错误?
干杯
解决方案
在 RewriteRule
中设置 index.html
:
RewriteRule ^archives/([0-9]+)/([0-9]+)/(?:index\.html)?$ archive.php?mid=$1-$2
此外,在您的原始重写规则中,您忘记了字符串锚 $
的结尾。我在上面添加了它。
其他提示
使用可选的 index.html
:
RewriteRule ^archives/([0-9]+)/([0-9]+)/(index\.html)?$ archive.php?mid=$1-$2
但是我建议你只使用其中一种符号,无论是否有尾随的 index.html
,如果错误都会重定向:
# remove index.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*/)?index\.html$ /$1 [L,R=301]
# add index.html
RewriteRule (.*)/$ $1/index.html [L,R=301]
不隶属于 StackOverflow