我正在尝试研究如何保护 Apache 2.4 中的文件夹。
我有这部分工作正常:
AuthUserFile /home/test/web/site.com/cgi-bin/hotels/admin/.htpasswd
AuthGroupFile /dev/null
AuthType Basic
AuthName Protected
require valid-user
Run Code Online (Sandbox Code Playgroud)
...但我还想添加允许我进入而无需登录的选项。这是我在旧服务器上的内容:
Order Deny,Allow
Deny from all
Allow from 123.123.123.123
Satisfy Any
Run Code Online (Sandbox Code Playgroud)
但新的给出了一个错误:
client denied by server configuration: /home/test/web/site.com/cgi-bin/hotels/admin/admin.cgi
Run Code Online (Sandbox Code Playgroud)
查看https://wiki.apache.org/httpd/ClientDeniedByServerConfiguration,我认为这会起作用:
Require all denied
Allow from 123.123.123.123
Satisfy Any
Run Code Online (Sandbox Code Playgroud)
...但它似乎没有(现在甚至不要求登录,即使我将接受的 IP 更改为随机 IP)
我错过了什么?
不要像那样混合 2.2 和 2.4 指令。Satisfy/Order/Allow/Deny 都是 2.2.x
仅使用 2.4 并卸载 mod_access_compat:
AuthType Basic
AuthName "Authorized Users Only"
AuthBasicProvider file
AuthUserFile /home/test/web/site.com/cgi-bin/hotels/admin/.htpasswd
<RequireAny>
Require valid-user
Require ip 123.123.123.123
</RequireAny>
Run Code Online (Sandbox Code Playgroud)
注意:htaccess 与目录保护无关,如果你可以访问 apache httpd 服务器的主要配置文件,请将这些都定义在一个<Directory /filesystem/path/to/protected/dir>
标签中
注2:忘记提及,RequireAny 已被指定用于示例目的,但这是 2.4.x 中的默认行为,因此如果您不想要,您实际上不需要指定它。
归档时间: |
|
查看次数: |
2198 次 |
最近记录: |