我遇到了Allow / Deny的一些问题,到目前为止我花了大约3个小时的时间搞乱了,结果只是感到沮丧。 我已经阅读了Apache文档和几个指南,我仍然卡住了。
我的问题是非常简单的,或者至less我觉得它应该是…我想阻止一个CIDR范围击中我的主机的特定区域。 在我的testing服务器上,我尽可能地告诉了这个可能性。
<LocationMatch "/myjunk/.+"> <IfModule mod_access.c> Order Deny,Allow Deny from 10.1.1.100/32 Allow from All </IfModule> </LocationMatch>
我已经在我的日志文件中证实我实际上来自10.1.1.100,我试过了:切换到Order Allow,Deny; 离开/ 32; 切换“允许”和“拒绝”线路并切换订单。 如果我删除允许从所有设置为拒绝,我得到了我想要的403。
日志文件片段:
15128 10.1.1.100 192.168.1.100 - - [01/Nov/2011:17:36:54 -0400] "GET /myjunk/abc/def/1 HTTP/1.1" 200 8000
我在旧的Solaris机器上运行Apache / 2.0.58,不幸的是,我无能为力去改变它。 我可以完全访问服务器,我可以直接修改httpd.conf文件。
我有一种感觉,我忽略了一些东西,或者只是错过了一些小东西。
更改Order Deny,Allow Order Allow,Deny试。
请记住, deny,allow顺序, deny指令是在allow指令之前评估的。 如果客户端不符合deny规则或者匹配allow规则,那么它将被授予访问权限。
与allow,deny相反allow,deny :如果客户端不符合allow规则,或者它与deny规则匹配,那么它将被拒绝访问。