我正在使用这样的.htacces文件:
RewriteRule ^folder/(.*).html$ file.php?mode=$1 [L,NC]
此网址没有问题:
http://www.example.com/folder/qwerty.html
但它正在给出403这样的禁止错误:
http://www.example.com/folder/.html
(P.s:这个问题不是什么大问题。只有我想学习如何解决这个问题,我出于安全考虑需要修复它。)
(P.s2:我试图将file.php更改为“if mode == null”但仍然是403错误。)
...谢谢
答案 0 :(得分:1)
Apache的默认配置包含一个部分:
#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy all
</Files>
包含“/.html”的URL与此匹配,作为带有“.ht”的路径的文件部分,因此它在达到重写规则之前拒绝访问。
你必须覆盖这个;通过使上面的部分更具体,只匹配.htaccess和.htpasswd来拒绝它们,或者通过覆盖匹配来重新允许.html,例如:
<Files ~ "^\.html">
Order allow,deny
Allow from all
</Files>
...在.htaccess文件中。