htaccess <目录>拒绝所有人

Kev*_*erw 50 apache .htaccess apache2

我最近一直在清理我的项目.我在根目录中有一个主要的.htaccess和另外6个.其中5个运行Options -Indexes,我没有看到允许任何目录查看的任何点,所以移动到主要的.所以现在我只有2个.htaccess文件.主要和一个/system持有

# Block External Access
deny from all
Run Code Online (Sandbox Code Playgroud)

所以我想/system只在主要内部运行它.所以我删除了/ system中的那个并添加了

 # Block External Access
<Directory "/system/">
deny from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

到我的主.htaccess文件离开1!

但现在我得到了

内部服务器错误

服务器遇到内部错误或配置错误,无法完成您的请求.

请联系服务器管理员,webmaster @ localhost并告知他们错误发生的时间,以及可能导致错误的任何操作.

关于此错误的更多信息可在服务器错误日志.

Apache/2.2.17(Ubuntu)服务器,位于10.0.1.5端口80

目标是阻止读取/ system及其子目录中的任何文件,但允许从.htaccess整个项目的一个文件中查看所有其他文件.关于我如何解决这个问题的任何想法?我做了一些谷歌搜索,但真的没有任何东西.

Ulr*_*lha 81

您不能在.htaccess中使用Directory指令.但是,如果在/ system目录中创建.htaccess文件并将其中包含在其中,则会得到相同的结果

#place this in /system/.htaccess as you had before
deny from all
Run Code Online (Sandbox Code Playgroud)

  • 是啊.我之前在/ system中放了一个.htaccess.只是想在整个项目中只有一个.猜猜我不能也将不得不这样做. (3认同)

sta*_*een 11

您还可以使用RedirectMatch指令拒绝访问文件夹.

要拒绝访问文件夹,可以在htaccess中使用以下RedirectMatch:

 RedirectMatch 403 ^/folder/?$
Run Code Online (Sandbox Code Playgroud)

这将禁止外部访问/ folder /例如:http://example.com/folder/将返回403禁止错误.

要拒绝访问文件夹中的所有内容,您可以使用:

RedirectMatch 403 ^/folder/.*$
Run Code Online (Sandbox Code Playgroud)

这将阻止访问整个文件夹,例如:http://example.com/folder/anyURI将向客户端返回403错误响应.