.htaccess拒绝访问特定的动态生成的URL

时间:2015-02-08 12:37:44

标签: apache .htaccess

我想通过IP地址限制对正在生成的特定网址的访问。例如:

http://www.domain.com/section.php/123/1/some-nice-text

IP 123.45.67.89无法访问

到目前为止,我已经:

<Limit GET POST HEAD>
  order allow,deny
  deny from 123.45.67.89
  allow from all
</Limit>

但是这会阻止访问该IP的所有站点。

我不能把htacess放在那条路上,因为它实际上并不存在。如何编辑限制条件以指定路径?

1 个答案:

答案 0 :(得分:0)

我会使用mod_rewrite。像这样:

RewriteBase /
RewriteCond %{REMOTE_ADDR} =123.45.67.89
RewriteRule ^section.php/123/1/some-nice-text - [R=404,L,NC] 

(未经测试/尝试季节。)

更新:对于多个地址,您可以使用regexen和/或多个RewriteConds与[OR]结合使用:

RewriteBase /
RewriteCond %{REMOTE_ADDR} =123.45.67.89 [OR]
RewriteCond %{REMOTE_ADDR} ^123\.45\.67\.9[0-4]$ [OR]
RewriteCond %{REMOTE_ADDR} ^123\.4\.56\.
RewriteRule ^section.php/123/1/some-nice-text - [R=404,L,NC] 

(仍未经测试等)