【发布时间】:2023-01-26 23:02:20
【问题描述】:
有一台运行着多个 Apache 实例的服务器。一个实例需要从任何地方访问,但仅限于授权用户。实例由 systemctl 脚本启动,其中 -f 选项指向 /opt/ 中的配置文件。
Config 包括来自 /opt/ 下同一文件夹中的另一个文件的指令。所包含指令的相关部分目前如下所示:
“
[...]
<Location "/subfolder">
<RequireAll>
Require all granted
Require valid-user
</RequireAll>
LimitRequestBody <someNumber>
</Location>
[...]
DavLockDB /somepath/webdav/DavLock
Alias /subfolder /mainfolder/subfolder
<Directory /mainfolder/subfolder>
Dav on
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /somepath/webdav/.htpasswd
<RequireAll>
Require all granted
Require valid-user
</RequireAll>
AllowOverride All
SSLRequireSSL
Options FollowSymLinks Indexes
</Directory>
[...]
“
这到目前为止有效,如果您输入用户名和密码,它只允许访问文件夹。
问题是,如果我注释掉 <Location 指令以符合安全建议,那么访问将被完全拒绝。没有办法输入用户名和密码,如果我在命令行上提供它们,它们将被忽略,而它们以前使用 <Location 块完好无损。
<Directory> 指令中的 <RequireAll> 块完全无效。事实上,如果我在那里评论它,它不会改变 httpd 实例的行为。只有当它被放置在 <Location 块中时它才有效。另一方面,<Directory> 块的其余部分似乎在工作。
有人对我在这里可能遗漏的东西有任何提示吗?提前致谢!
【问题讨论】:
标签: apache2.4