![htaccess 阻止访问目录,但有两个例外](https://linux22.com/image/797674/htaccess%20%E9%98%BB%E6%AD%A2%E8%AE%BF%E9%97%AE%E7%9B%AE%E5%BD%95%EF%BC%8C%E4%BD%86%E6%9C%89%E4%B8%A4%E4%B8%AA%E4%BE%8B%E5%A4%96.png)
我不知道如何编写一个 .htaccess 文件来阻止对目录的所有访问,但读取 html 文件(应该允许)和需要身份验证的 php 文件除外。拒绝所有访问并允许 html 可以正常工作,但要求输入 php 文件的密码则不行。
以下是我的想法:
<FilesMatch ".*\.php$">
AuthName "Test area"
AuthUserFile /var/www/.htpasswd
AuthType Basic
require valid-user
</FilesMatch>
<FilesMatch "\.html?$">
Order Allow,Deny
Allow from All
</FilesMatch>
order Allow,Deny
Deny from ALL
谢谢,
交流
答案1
我想通过认证或者授权,而不是两者,你需要一个Satisfy Any
(默认是Satisfy All
)
Order deny,allow
Deny from all
<FilesMatch "\.php$">
Satisfy Any
AuthName "Test area"
AuthUserFile /var/www/.htpasswd
AuthType Basic
require valid-user
</FilesMatch>
<FilesMatch "\.html?$">
Allow from All
</FilesMatch>
注意:对于 Apache >= 2.4,此方法已弃用(参见新的<Require(All|None|Any)>
和Require
指令)。