【发布时间】:2011-08-26 21:01:39
【问题描述】:
我想将一个 ip 重定向到我网站的另一个视图,例如,我希望来自 ip x 的访问者看到
www.xxx.com?_DEBUG=1
而所有其他访问者看到的是正常的 www.xxx.com,
我将如何在 apache 配置文件中执行此操作,使用哪些指令?
【问题讨论】:
标签: apache httpd.conf
我想将一个 ip 重定向到我网站的另一个视图,例如,我希望来自 ip x 的访问者看到
www.xxx.com?_DEBUG=1
而所有其他访问者看到的是正常的 www.xxx.com,
我将如何在 apache 配置文件中执行此操作,使用哪些指令?
【问题讨论】:
标签: apache httpd.conf
这是一个重写配置的示例,可以做你想做的事 - 把它放在你服务器上 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 更改为您需要的任何 IPRewriteCond 防止已经重写为包含_DEBUG=1 的URL 被再次重写RewriteRule有两个版本;第一个版本(已注释掉)实际上执行了重定向。如果您确实希望 HTTP 客户端向服务器提交第二个请求,包括 _DEBUG=1 参数,请使用此选项。不利的一面是,如果您将 GET 和 POST 数据结合起来,此方法将不起作用。RewriteRule 的第二个版本是我建议您使用的...它不执行重定向。相反,它只是在处理请求之前在 Apache 内部将 _DEBUG=1 参数附加到 HTTP 请求。【讨论】:
1.2.3.4 可以是模式(例如 1.2.3.*)。