我需要用密码限制对 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>
客户端将被授予访问权限,无需输入密码。