0

我研究了很长时间,但找不到正确的答案。我正在使用由000webhost.com. 我有一个.htaccess由他们提供的 public_html 文件夹。目录结构有子目录,比如includes我不希望用户直接访问 URL,应该说Forbidden - 403.

我不想.htaccess在我不想允许访问的每个子目录中。我在某处读到 .htaccess 可以改变所有子目录及其本身的行为。

我知道性能方面这不是一个好选择,但我无权访问 httpd.conf。

我认为在 SO 上有一些答案告诉我:1. 将这些子目录移到 public_html 之外(不想这样做) 2..htaccess为每个子目录创建并拒绝访问(这是痛苦而不是可扩展的解决方案) 3.使用重写规则(可能是一个不确定的解决方案)我希望有人能理解并帮助我。

非常感谢。

4

2 回答 2

1

实际上,最安全的解决方案是将这些目录移到 DocumentRoot 之外。但是,您可以轻松地在 .htaccess 中添加重写规则以禁止访问:

RewriteEngine On
# Group many forbidden directories as (a|b|c|d)
RewriteRule ^(include|otherforbidden|someotherone) - [F]

除非您在下游有几十个目录要管理,否则我认为在每个目录中删除特定于目录的 .htaccess 不会有什么大问题。

于 2012-09-26T14:27:35.227 回答
1

添加RedirectMatch 403 ^/includes/.*$到您的根.htaccess文件以将任何调用重定向到 /includes 目录以强制出现403 Forbidden错误。

但是,使用它会更安全,RedirectMatch 404 ^/includes/.*$因为攻击者会收到404 File Not Found错误。这被认为更安全,因为 403 错误让攻击者知道有要攻击的文件。

于 2012-09-26T14:30:08.613 回答