文件名的htaccess问题

时间:2009-07-30 07:35:18

标签: .htaccess mod-rewrite

当我第一次设置我的网站时,我决定将index.html添加到网址,但现在我遇到问题,当人们删除index.html并尝试访问该文件夹时...

例如:

RewriteRule ^archives/([0-9]+)/([0-9]+)/index.html archive.php?mid=$1-$2

因此当archives/07/2009/导致错误时,我该如何避免此错误? 干杯

2 个答案:

答案 0 :(得分:1)

使用可选的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]

答案 1 :(得分:0)

index.html

中设置RewriteRule可选项
RewriteRule ^archives/([0-9]+)/([0-9]+)/(?:index\.html)?$ archive.php?mid=$1-$2

此外,在原始重写规则中,您忘记了字符串锚$的结尾。我在上面添加了它。