Apache - 限制对除一个文件夹之外的所有文件夹的访问

Apache - 限制对除一个文件夹之外的所有文件夹的访问

我需要用密码限制对 x 个文件夹的访问,这是我的工作。

但是我现在需要添加一个名为“公共”的文件夹,该文件夹无需密码即可访问。该文件夹需要与其他文件夹处于同一级别。我无法更改文件夹的布局,因为这会损坏现有链接。

OSX 10.4.11 Apache 1.3.41

这是我的配置,到目前为止,它会显示站点的根目录而不需要密码,但它仍然要求输入公共文件夹的密码。我宁愿不使用 .htaccess 文件,但如果这是我唯一的选择,我会这样做。

<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot "/Library/WebServer/example.com/www/"
CustomLog "/var/log/httpd/access_log" "%h %l %u %t \"%r\" %>s %b"
ErrorLog "/var/log/httpd/error_log"
    <Directory "/Library/WebServer/example.com/www/">
            Options All +Indexes -ExecCGI +Includes +MultiViews
            AllowOverride None
            IndexOptions NameWidth=*
            Order Deny,Allow
            Allow from all                         
    </Directory>
    <Directory "/Library/WebServer/example.com/www/public/">
            Options All +Indexes -ExecCGI +Includes +MultiViews
            AllowOverride None
            IndexOptions NameWidth=*
            Order Deny,Allow
            Allow from all
    </Directory>
    <Directory "/Library/WebServer/example.com/www/*/">
            Options All +Indexes -ExecCGI +Includes +MultiViews
            AllowOverride None
            IndexOptions NameWidth=*
            AuthName "Restricted Area"
            AuthType Basic
            AuthUserFile /Library/WebServer/example.com/.htpasswd
            require valid-user
    </Directory>
</VirtualHost>

我知道 AuthType Basic 存在问题,也知道运行非常旧版本的 Apache 存在问题。

答案1

添加满足任何到你的指令的结尾Directory

<Directory "/Library/WebServer/example.com/www/public/">
        Options All +Indexes -ExecCGI +Includes +MultiViews
        AllowOverride None
        IndexOptions NameWidth=*
        Order Deny,Allow
        Allow from all
        Satisfy Any
</Directory>

客户端将被授予访问权限,无需输入密码。

相关内容