2010-07-13 45 views

回答

0

如果客户有一个(相对)静态IP地址,你可以做这样的事情来代替你目前有:

RewriteEngine On 

# Replace with the appropriate IP address 
RewriteCond %{REMOTE_ADDR} !=192.168.0.1 
RewriteRule .* http://www.newsite.com%{REQUEST_URI} [R=301,L] 

或者,你也许能够做这样的事.. 。

RewriteEngine On 

RewriteCond %{THE_REQUEST} !\?noredirect 
RewriteCond %{HTTP_REFERER} !^http://www\.oldsite\.com 
RewriteRule .* http://www.newsite.com%{REQUEST_URI} [R=301,L] 

然后(假设他们的浏览器发送引荐),他们可以在http://www.oldsite.com/?noredirect访问旧网站,并希望他们点击后,将正常工作,不会重新导向到新网站的任何后续环节。虽然我没有测试过,所以我可能忽略了一些东西。

+0

非常感谢!第二条规则完美。客户端的IP地址经常更改以至于无法使用IP,因此向URL中添加参数非常理想。谢谢! – NatalieMac 2010-07-24 02:43:39

2

您可以通过重定向指令之前添加一个RewriteCond指令让你重定向条件:

RewriteCond %{SOMETHING} !the-client 

SOMETHING是服务器变量,你可以用它来识别客户端,并的客户端是一种标识客户端的模式。

例如,如果您的客户端总是从一个已知的IP地址,你可以使用:

RewriteCond %{REMOTE_ADDR} !^12\.34\.56\.78$ 
Redirect 301/http://www.newsite.com/ 

更多的服务器变量可用,如果IP地址不为看到工作http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html您情况。