htaccess 阻止访问目录,但有两个例外

htaccess 阻止访问目录,但有两个例外

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

相关内容