我正在研究一种通过 IP 过滤特定页面并将其重定向到不同页面的方法。
下面的代码无法正常工作。
RewriteCond %{REMOTE_ADDR} ^/192.168.10.*
RewriteCond %{REQUEST_URI} ^/support
RewriteRule ^/.* http://www.yahoo.com/gone [R,NE]
一旦链接http://example.com/support已被访问并且它们位于 192.168.10.* block 上,它必须转到 yahoo.com 示例页面。
但是,就像我说的。它只是什么也没做。有什么想法为什么它不能正常工作吗?
最佳答案
正如 yoda 在评论中所说,不要在 IP 地址前面放置 /
。另外,模式中的 .
应该是 \.
,因为这是 Perl 兼容的正则表达式。您还可以将 [NC]
添加到请求 uri 匹配中,不区分大小写(敏感)。最后,您可以将第二个条件与 RewriteRule 合并。全部在一起:
RewriteCond %{REMOTE_ADDR} ^192\.168\.10\..*
RewriteRule ^/support http://www.yahoo.com/gone [R,NE,NC]
关于mod-rewrite - mod_重写: Filter specific pages by IP and redirect them,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1391685/