我最近将WordPress网站迁移到新服务器和新域名。为了将流量从旧网站重定向到新网站,我设置了一个简单的单行.htaccess文件:
重定向301 / http://www.newsite.com/
但是,现在客户想要访问旧网站。有没有办法可以让一个人进入并将其他人重定向到新网站?
答案 0 :(得分:2)
您可以通过在Redirect指令之前添加RewriteCond指令来使重定向成为条件:
RewriteCond %{SOMETHING} !the-client
其中 SOMETHING 是一个服务器变量,可用于标识客户端, the-client 是一种标识客户端的模式。
例如,如果您的客户端始终来自已知的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以获取更多可用的服务器变量。
答案 1 :(得分: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的旧网站,并希望他们之后点击的任何后续链接都可以正常工作而无需重定向到新网站。我没有测试过这个,所以我可能忽略了一些东西。