拒绝访问 htaccess 中的多个文件
Posted
技术标签:
【中文标题】拒绝访问 htaccess 中的多个文件【英文标题】:Deny access to multiple files in htaccess 【发布时间】:2012-09-23 23:07:40 【问题描述】:我想通过 htaccess 拒绝多个文件。
<FilesMatch (profile|reg|register|..............|)\.php>
order allow,deny
deny from all
</FilesMatch>
我有很多文件(6 个文件夹,每个文件夹大约 30 个文件)我想拒绝访问,因此使用上述方法逐个输入它们需要时间。
我可以拒绝访问此类文件夹中的所有文件吗?
<Directory /www/php/login/pages>
Order Allow,Deny
</Directory>
【问题讨论】:
手册无所不知:<Directory> Directive 是的,当然可以。另外,如果您拒绝访问这些脚本,为什么还要将它们放在 Web 根目录中?通常的做法是只将需要的内容放在 Web 根目录中,而将应用程序的其余部分留在其他地方。 最好的解决方案是简单地将这些文件放在文档根目录之外。 php 仍然可以包含/需要它们,因为它不受 apache 级别的限制。 【参考方案1】:您需要像最初的方法一样添加“全部拒绝”,但是可以。
在文档中向下滚动您要查找的语法:http://httpd.apache.org/docs/2.2/mod/core.html#directory
【讨论】:
从您引用的页面:Note that unlike <Directory> and <Location> sections, <Files> sections can be used inside .htaccess files.
==> .htaccess 中没有 多个
<FilesMatch "(foo|bar|doo)\.php$">
Deny from all
</FilesMatch>
或者去重写规则 (RewriteEngine On
)
RewriteRule \.(psd|log)$ - [NC,F]
拒绝访问文件夹中的所有文件:
rewriteRule ^www/php/login/pages - [NC,F]
或者直接在该文件夹中放置一个“全部拒绝”...
2015 年更新:使用 Apache 2.4 或更高版本,“拒绝所有人”would needs adjustment。
【讨论】:
以上是关于拒绝访问 htaccess 中的多个文件的主要内容,如果未能解决你的问题,请参考以下文章
使用 .htaccess 拒绝访问目录中的所有 PHP 文件