当所有其他目录都需要授权时,允许访问一个目录

当所有其他目录都需要授权时,允许访问一个目录

我有一个 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 指向该目录。

相关内容