【发布时间】:2010-07-13 01:00:59
【问题描述】:
我最近将一个 WordPress 站点迁移到了新服务器和新域名。为了将流量从旧站点重定向到新站点,我放置了一个简单的单行 .htaccess 文件:
重定向 301 / http://www.newsite.com/
然而,现在客户想要访问旧网站。有没有一种方法可以让一个人进入并将其他人重定向到新站点?
【问题讨论】:
标签: apache wordpress .htaccess
我最近将一个 WordPress 站点迁移到了新服务器和新域名。为了将流量从旧站点重定向到新站点,我放置了一个简单的单行 .htaccess 文件:
重定向 301 / http://www.newsite.com/
然而,现在客户想要访问旧网站。有没有一种方法可以让一个人进入并将其他人重定向到新站点?
【问题讨论】:
标签: apache wordpress .htaccess
您可以通过在 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 了解更多可用的服务器变量。
【讨论】:
如果客户端有一个(相对)静态 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 访问旧网站,并希望他们之后单击的任何后续链接都能正常工作,而无需重定向到新网站。不过我没有对此进行测试,所以我可能忽略了一些东西。
【讨论】: