Apache 301重定向除了一个人使用.htaccess之外?

Apache 301重定向除了一个人使用.htaccess之外?,apache,wordpress,.htaccess,Apache,Wordpress,.htaccess,我最近将一个WordPress站点迁移到一个新服务器和新域名。为了将流量从旧站点重定向到新站点,我设置了一个简单的单行.htaccess文件: 重定向301/ 但是,现在客户机希望访问旧站点。有没有一种方法可以让一个人进入并将其他人重定向到新站点?如果客户端有一个(相对)静态IP地址,您可以这样做来代替当前的IP地址: RewriteEngine On # Replace with the appropriate IP address RewriteCond %{REMOTE_ADDR} !=

我最近将一个WordPress站点迁移到一个新服务器和新域名。为了将流量从旧站点重定向到新站点,我设置了一个简单的单行.htaccess文件:

重定向301/

但是,现在客户机希望访问旧站点。有没有一种方法可以让一个人进入并将其他人重定向到新站点?

如果客户端有一个(相对)静态IP地址,您可以这样做来代替当前的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]

然后(假设他们的浏览器发送了推荐人),他们可以在访问旧站点,并且希望此后单击的任何后续链接都能正常工作,而无需重定向到新站点。但我没有对此进行测试,因此我可能忽略了一些内容。

您可以通过在重定向指令之前添加RewriteCond指令来设置重定向条件:

RewriteCond %{SOMETHING} !the-client
其中,SOMETHING是一个服务器变量,可用于标识客户机,而客户机是标识客户机的模式

例如,如果您的客户端始终来自已知的IP地址,则可以使用:

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

如果IP地址不适合您的情况,请参阅了解更多可用的服务器变量。

非常感谢!第二条规则非常有效。客户端的IP地址经常更改,无法使用IP,因此向URL添加参数是理想的选择。非常感谢。