当我第一次设置我的网站时,我决定将 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]
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top