0

我正在使用这样的 .htacces 文件:

RewriteRule ^folder/(.*).html$ file.php?mode=$1 [L,NC]

这个网址没有问题:

http://www.example.com/folder/qwerty.html

但它给出了 403 禁止错误,例如这个 URL:

http://www.example.com/folder/.html

(ps:这个问题不是什么大问题。只是我想学习如何解决这个问题,出于安全原因我需要修复它。)

(P.s2:我尝试将 file.php 更改为“if mode == null”,但仍然出现 403 错误。)

谢谢...

4

1 回答 1

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 文件中。

于 2013-04-02T17:01:13.290 回答