我有一个 Apache 配置,使用以下代码来限制对网站的访问 -
<Directory /var/www/html/website/test/>
AuthName "Dyne Drewett Test Site"
AuthType Basic
AuthUserFile /usr/local/etc/apache/.htpasswd
require valid-user
</Directory>
有人知道我该如何修改它以允许完全、未经授权访问 下的一个目录/test/
吗?谢谢。
更新
在@dunxd我现在有这个,我猜一定是错了,因为当我转到请求的页面(在目录中找到/dyne_drewett/
)时仍然收到 401 错误。任何进一步的帮助都很好。
# Main directory rules
<Directory /var/www/html/website/test/>
# General access to the site
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from 192.168.1
# Authorisation settings
AuthName "Dyne Drewett Test Site"
AuthType Basic
AuthUserFile /usr/local/etc/apache/.htpasswd
require valid-user
</Directory>
# Theme directory rules
<Directory /var/www/html/website/test/wp-content/themes/dyne_drewett/>
# General access to the folder
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
# Authorisation settings
AuthType None
require all granted
</Directory>
答案1
有几种方法可以实现这一点。
最简单的方法是使用以下命令为子目录创建另一个目录条目授权类型像这样设置为 None :
<Directory /test/public>
AuthType None
Require all granted
</Directory>
另一种方法是使用指向目录的不同 URL。在Apache 文档中的 Directory 指令有一条评论说:
小心使用目录路径参数:它们必须与 Apache httpd 用于访问文件的文件系统路径完全匹配。应用于特定文件的指令不会应用于通过不同路径(例如通过不同的符号链接)从同一目录访问的文件。
您可以在这里利用这一点 - 从 /allowed/ 创建一个到 /test/ 下的子目录的符号链接,并使用该 URL 指向该目录。