我不知道如何编写一个 .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
指令)。