我有我需要限制访问特定IP(10.0.0.5)的URL。 当我以下面的方式直接访问时,它是完美的:
<Location /incoming> Order Allow,Deny Deny from 10.0.0.5 Allow from all </Location>
但是,当这个IP来自代理(代理IP:192.168.1.43)这个解决scheme不起作用。 这是我在日志中看到的:
10.0.0.5,192.168.1.43 – [24 / May / 2017:16:03:54 +0300]“POST / incoming HTTP / 1.0”200 698 0/6899“ – ”“ –
我试图做下一个 – 添加代理部分:
<Proxy /incoming > Order Allow,Deny Deny from 10.0.0.5 Allow from all </Proxy>
它也没有帮助。
我需要你的帮助,朋友们!
如果代理设置了X-Forwarded-For头,你应该可以使用这个:
<Location /incoming> Order Deny,Allow SetEnvIf X-Forwarded-For "10.0.0.5" DenyAccess Deny from env=DenyAccess </Location>
Order Deny,Allow是一个默认允许指令,除非拒绝规则匹配,否则允许访问。 SetEnvIf根据X-Forwarded-For的值有条件地设置环境标志。 这里的一个拒绝规则只有在该标志被设置时触发。 如果没有拒绝规则被触发,则允许访问。
您也可以在Require块中引用env标志,如下所示。