我正在保留现有的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
答案 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
从命令行,您就可以开始滚动了。