在过去的几周中,我们一直在帮助客户使用WordPress进行复杂的迁移。 客户有两种产品,两种产品都变得很受欢迎,以至于他们不得不将业务,品牌和内容分开到不同的领域。 这是相当大的事业!
他们现有的域仍然存在,但是新域将拥有与该产品有关的所有内容,包括图像,帖子,案例研究,下载,表格,知识库等。我们进行了审核,并对站点进行了爬网以确保我们不会不会错过任何一项资产。
一旦我们拥有了新的站点并投入运营,就可以拉开交换机并将其投入使用了。 这意味着必须将主站点中属于该产品的所有URL重定向到新域。 我们使站点之间的大多数路径保持一致,因此关键是适当地设置重定向。
WordPress中的重定向插件
有两个流行的插件可以很好地利用WordPress管理重定向:
- 重定向 –也许是市场上最好的插件,具有正则表达式功能,甚至可以管理重定向的类别。
- 排名数学搜索引擎优化 –这个轻巧的SEO插件让人耳目一新,使我的清单 最好的WordPress插件 在市场上。 它已将重定向作为其产品的一部分,如果您迁移到重定向,它甚至会导入重定向的数据。
如果您使用的是托管WordPress托管引擎,例如 WPEngine,他们有一个模块可以在用户访问您的网站之前处理重定向……这是一个非常不错的功能,可以减少主机的延迟和开销。
当然,您可以 将重定向规则写入您的.htaccess文件 在您的WordPress服务器上…但是我不推荐这样做。 您是使站点无法访问的一种语法错误!
如何创建正则表达式重定向
在上面提供的示例中,仅执行从子文件夹到新域和子文件夹的典型重定向似乎很简单:
Source: /product-a/
Destination: https://newdomain.com/product-a/
但是,这有一个问题。 如果您发布的链接和广告系列包含用于广告系列跟踪或引荐的查询字符串,该怎么办? 这些页面将无法正确重定向。 网址可能是:
https://existingdomain.com/product-a/?utm_source=newsletter
由于您输入了完全匹配的内容,因此该URL不会在任何地方重定向! 因此,您可能会想使其成为正则表达式并向URL添加通配符:
Source: /product-a/(.*)
Destination: https://newdomain.com/product-a/
很好,但是仍然存在一些问题。 首先,它将与 /产品-a / 并将它们全部重定向到相同的目的地。 因此,所有这些路径都将重定向到同一目的地。
https://existingdomain.com/product-a/
https://existingdomain.com/help/product-a/
https://existingdomain.com/category/parent/product-a/
但是,正则表达式是一个漂亮的工具。 首先,您可以更新源以确保标识了文件夹级别。
Source: ^/product-a/(.*)
Destination: https://newdomain.com/product-a/
这样可以确保只有主文件夹级别才能正确重定向。 现在针对第二个问题……如果您的重定向不包括在新站点上捕获的查询字符串信息,您将如何获取它? 好吧,正则表达式也有很好的解决方案:
Source: ^/product-a/(.*)
Destination: https://newdomain.com/product-a/$1
通配符信息实际上是使用该变量捕获的,并附加到目的地。 所以…
https://existingdomain.com/product-a/?utm_source=newsletter
将正确重定向到:
https://newdomain.com/product-a/?utm_source=newsletter
请记住,通配符也将使任何子文件夹也能够重定向,因此也将启用它:
https://existingdomain.com/product-a/features/?utm_source=newsletter
将重定向到:
https://newdomain.com/product-a/features/?utm_source=newsletter
当然,正则表达式要比这复杂得多……但是我只想提供一个快速示例,说明如何设置通配符regex重定向,以将所有内容清楚地传递到新域!