【问题标题】:WordPress 301 redirect loop issueWordPress 301 重定向循环问题
【发布时间】:2018-01-13 12:44:29
【问题描述】:

我保留了现有的 WordPress 网站,但更改了域名。旧域名将被重定向到同一个网站,所以如果有人去https://oldexample.com,他们会到达https://newexample.com

根据我所阅读的内容,需要执行从旧 slug 到新 URL 的 301 重定向,如下所示:

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

但在我在线阅读的每篇文章中,这种方法都假定旧 slug 的名称与 slug 不同。

但在我的情况下,所有页面都有相同的 slug,但会有不同的域。例如:来自旧域的 slug 可能是 my-cool-page 并且在新域中还有一个名为 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

【问题讨论】:

  • 嘿。看到我的回答了吗?有帮助吗?

标签: wordpress .htaccess redirect


【解决方案1】:

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

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

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

由于它是 Wordpress,并且 Wordpress 将 URL 保存在数据库中,您需要在数据库中搜索和替换旧域并将其替换为新域。

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

wp search-replace https://oldexample.com https://newexample.com

从命令行,你就可以开始了。

【讨论】:

  • 太棒了,好多了。我假设我仍然可以在需要时使用redirect 301 /old-page/ https://newexample.com/new-page method?从那以后,我了解到我们需要删除几个现有页面,因此我想将它们重定向到其他地方。 PS:很清楚 WordPress 数据库 URL 的事情,但感谢您提及它,以便其他人在阅读本文时受益。
猜你喜欢
  • 1970-01-01
  • 2016-03-06
  • 2010-11-07
  • 1970-01-01
  • 2015-06-01
  • 1970-01-01
  • 2019-11-05
  • 2023-03-25
  • 2014-03-10
相关资源
最近更新 更多