基于ip的apache http rewrite / redirect

时间:2011-05-17 00:50:53

标签: apache httpd.conf

我想将ip重定向到我网站的另一个视图,例如,我希望来自ip x的访问者看到
www.xxx.com?_DEBUG=1
所有其他访客都看到了正常的www.xxx.com, 我将如何在apache配置文件中执行此操作,使用了哪些指令?

1 个答案:

答案 0 :(得分:3)

以下是一个重写配置示例,可以执行您想要的操作 - 将其放入服务器上的www.xxx.com虚拟主机中:

RewriteCond %{REMOTE_ADDR} 1.2.3.4
RewriteCond %{QUERY_STRING} !_DEBUG=1
#RewriteRule ^/(.*)$ /$1?_DEBUG=1 [QSA,R,L]
RewriteRule ^/(.*)$ /$1?_DEBUG=1 [QSA,L]

几点说明:

  • 1.2.3.4更改为您需要的任何IP
  • 第二个RewriteCond会阻止已重写的网址重新包含_DEBUG=1
  • 实际RewriteRule有两个版本;第一个版本(注释掉)实际上执行重定向。如果您确实希望HTTP客户端向服务器提交包括_DEBUG=1参数的第二个请求,请使用此选项。缺点是,如果你要组合GET和POST数据,这种方法将不起作用。
  • RewriteRule的第二个版本是我建议您使用的...它不会执行重定向。相反,它只是在处理请求之前在Apache内部将_DEBUG=1参数附加到HTTP请求。