如何使用不同的永久链接结构重定向旧域?

Posted

技术标签:

【中文标题】如何使用不同的永久链接结构重定向旧域?【英文标题】:How to redirect old domain using a different permalink structure? 【发布时间】:2021-04-01 03:42:44 【问题描述】:

旧域最初有一个永久链接结构,即 domain1.com/%year%/%month%/%date%/%post-id%/post-title,而我将永久链接结构更改为简单的 domain1。 com/post-title 之后,重定向就像安装一个重定向插件一样简单。

但最近,该网站迁移到了一个新域;我们称之为 domain2.com。 .htaccess 中添加了以下代码,以将所有旧 URL 重定向到新域上的相应 URL:

RewriteCond %HTTP_HOST ^domain1.com$ [OR]        

RewriteCond %HTTP_HOST ^www.domain1.com$         

RewriteRule ^(.*)$ https://domain2.com/$1 [R=301,L]

此代码适用于大多数页面,但使用旧永久链接结构的页面除外。

旧的永久链接 URL 导致重定向过多(旧域名与旧永久链接结构 -> 旧域名与新永久链接结构 -> 新域名与新永久链接结构),我认为这对 SEO 不利.

页面具有良好的反向链接,因此这里的目标是将价值传递给新域。

现在,我知道我可以将此代码用于单个 URL(信用 MrWhite)

RewriteCond %HTTP_HOST (w*)domain1\.com$ [NC]
RewriteRule ^2020/10/25/2257/title/?$ https://domain2.com/title/ [L,R=301]

但是由于这将涉及添加很多行,我很好奇这是否可以通过一段通用代码来完成——旧域的旧永久链接 URL 应该重定向到新域的当前永久链接结构。

两个域都托管在同一台服务器上。

【问题讨论】:

当然这是可能的,您需要做的就是用匹配所有可能的此类标题的通用模式替换规则中的“标题”(无论是什么)。但是,您还需要注意这些重定向不会应用于现有的有效路径。这是我们无法提供帮助的事情,因为您对自己的内容和资源一无所知。 @arkascha 您能否对此进行扩展并在可能的情况下提供替换代码?我一定会确保它不会影响现有路径。 您实际上只需要用与您的标题匹配的简单正则表达式替换“标题”。我不知道你的头衔,你没有告诉我们。如果您对正则表达式本身感到困惑,我建议您通过关于该主题的无休止的“入门”教程之一进行工作。您需要能够处理自己使用的工具,这就是这里的规则。如果您尝试一下并学习您的工具,您将受益匪浅。 感谢@arkascha 的输入,非常感谢!找到解决方案,将更新帖子:) 【参考方案1】:

找到了解决办法。

如果您处于类似情况(请参阅帖子),只需在域级重定向上方添加类似这样的内容。

RewriteCond %HTTP_HOST (w*)domain1\.com$ [NC]
RewriteRule ^2020/\d+/\d+/\d+/(.+)$ https://domain2.com/$1 [L,R=301]

【讨论】:

以上是关于如何使用不同的永久链接结构重定向旧域?的主要内容,如果未能解决你的问题,请参考以下文章

如何将网站 301 永久重定向到另一个网站和永久链接的子类别(使用 .htaccess)

如何设置 .htaccess 和 mod_rewrite 以永久重定向到不包括根索引页面的新域?

将旧域的所有网页重定向到新域索引

htaccess 将旧域重定向到新域

301 使用 .htaccess 从旧域重定向到新域

如果用户已缓存站点,如何将用户从旧域重定向到新域