与 Apache 中的访问控制指令的小混淆

rfg*_*ral 2 httpd.conf apache-2.2

对我的服务器的访问控制定义如下:

Order allow,deny
Allow from 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

这以我想要的方式工作。首先,只允许从本地机器访问,然后拒绝其他一切。但是我发现很多例子可以做这样的事情:

Order deny,allow
Deny from all
Allow from 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

这更有意义。首先,拒绝所有访问,然后只允许本地访问。

我的问题是,它们是否等效并且完全相同?他们以我的方式看待它,他们是,但我只是想确保它们完全相同。如果没有,它们有什么不同,我应该选择哪一个来只允许访问我的本地机器?

and*_*dol 5

是的,它们在提供相同结果方面是等效的,只允许从 127.0.0.1 访问。让我引用Order 指令文档中的相关部分。

允许否认

首先,评估所有 Allow 指令;至少有一个必须匹配,否则请求将被拒绝。接下来,评估所有 Deny 指令。如果有任何匹配,则拒绝该请求。最后,默认情况下拒绝任何与 Allow 或 Deny 指令不匹配的请求。

否认允许

首先,评估所有 Deny 指令;如果有任何匹配,则请求将被拒绝,除非它也匹配 Allow 指令。允许任何与任何 Allow 或 Deny 指令不匹配的请求。