允许公众访问 apache 上受保护文件夹的子文件夹

允许公众访问 apache 上受保护文件夹的子文件夹

我在维护网站时已对网站的根文件夹设置了密码保护,但我想显示自定义 401 错误页面,让人们知道网站正在建设中。不幸的是,我的网络主机不允许我对网站根文件夹之外的任何内容进行写访问,因此必须将此自定义错误页面存储在根文件夹或其子文件夹中。我没有看到自定义错误页面,而是看到了 Apache 默认错误页面,并且还显示“此外,尝试使用 ErrorDocument 处理请求时遇到 401 需要授权错误。”

我搜索了将受保护目录的子文件夹公开的方法,我所能找到的只是使用“满足任何条件”指令,但这对我来说不起作用。它也不适用于仅文件,就像下面的 .htaccess 文件一样。

#Authorization Restriction
AuthType Basic
AuthName "Access to root"
AuthUserFile *********************************
Require user ***********

Order Allow,Deny

Satisfy any

#Error Documents
ErrorDocument 401 Error-401.html

#Allow access to error documents
<Files Error-*,html>
Order Deny,Allow
Allow from all
Satisfy any
</Files>

我只能使用 .htaccess 文件;我无法访问 httpd.conf

答案1

它对我有用。但你打错了,<Files Error-*,html>逗号应该是<Files Error-*.html>

在我的本地主机上它甚至不需要文件指令。但在生产服务器上我必须使用满足任何正如你所建议的。


您可以将自定义的 401 错误直接放入 ErrorDocument 中:

ErrorDocument 401 "<html>...</html>"

或者你可以用<FilesMatch>以下方式封装你的 Auth 规则:否定401.html 文件:

<FilesMatch "^(?!401\.html$).+">
AuthType Basic
AuthName "Awe!"
AuthUserFile /full/path/to/.htpasswd
require user Lord
</FilesMatch>

ErrorDocument 401 /401.html

相关内容