WordPress 301重定向循环问题

时间:2018-01-13 12:44:30

标签: wordpress .htaccess redirect

我正在保留现有的WordPress网站,但更改了域名。旧域名将被重定向到同一网站,因此,如果有人转到https://oldexample.com,则会转到https://newexample.com

根据我的阅读,我们需要从旧的slugs到新的URL进行301重定向,如下所示:

redirect 301 /old-page/ https://newexample.com/new-page

但在我在网上阅读的每篇文章中,这种方法都假设旧的slug被命名为与slug不同的东西。

但在我的情况下,所有页面都有相同的slug但会有不同的域名。例如:来自旧域的slug可能是我的酷页面,而新域名也有一个名为my-cool-page的页面,根据我读过的内容,我需要这样做:

redirect 301 /my-cool-page/ https://newexample.com/my-cool-page

但是,这是我的问题:这不会导致重定向循环吗?或者我可以简单地逃避:

redirect 301 https://oldexample.com/my-cool-page/ https://newexample.com/my-cool-page

1 个答案:

答案 0 :(得分:1)

.htaccess中唯一需要的规则是:

RewriteCond %{HTTP_HOST} ^(?:www\.)oldexample\.com$ [NC]
RewriteRule ^ https://newexample.com%{REQUEST_URI} [L,R=301]

这将涵盖所有您的网址。您使用的方法不仅会导致重定向循环,而且每个URL都需要一个新规则。效率不高。

由于它是Wordpress,而Wordpress会在数据库中保存网址,因此您需要进行搜索&替换数据库中的旧域并将其替换为新域。

有很多工具和/或插件可以做到这一点。最好的IMO是wp-cli。使用它你只需要执行

wp search-replace https://oldexample.com https://newexample.com
从命令行

,您就可以开始滚动了。