原始页面做301跳转后,多语言页面怎么处理?

这个问题可能很少见,但是如果你经常改动页面且使用了类似translatepress等插件,你大概率会遇到,那就是一个英文页面做了301跳转到其他新页面后,该原始页面下的其他语种页面并不会做自动跳转,这个时候如何处置更合适?

这么说可能有点抽象,今天我以我自己实际的亲身经历告诉大家把!

情况描述

出于一些原因考虑,已经把原先的英文分类页面(旧英文 URL)做了 301 重定向,跳到了新的英文页面,如下图所示,不包含product-category

  • 英文旧页面:https://www.abc.com/product-category/product1/
  • 英文新页面:https://www.abc.com/product1/

但是英文旧页面我并没有删除,单单只做了301跳转

当用户访问 德语版本的同类页面时:

  • 德语页面:
    https://www.ikinor-tech.com/de/product-category/interactive-flat-panel-display/ 这个页面并不会自动跳转至 https://www.abc.com/de/product1/

这个时候就会有点麻烦,因为很明显新的页面下德语版本是要与这个旧页面的德语版本互相掐架了,如果我一个个去做对应语言版本的跳转显得有些繁琐,因此我开始研究如何去把这个页面变动后烂摊子收拾一下。

解决方案一:每个语言单独做跳转(略微繁琐)

英文有一条 301,其他语言就必须再有一条德语的 301,其他语言同理。

比如我英文的是 : https://www.abc.com/product-category/product1/ 跳转至 https://www.abc.com/product1/

那么德语就应该是

FROM:
https://www.abc.com/de/product-category/product1/

TO:
https://www.abc.com/de/product1/

Type:
301

对应的法语 301(同理)

FROM:
https://www.abc.com/fr/product-category/product1/

TO:
https://www.abc.com/fr/product1/

Type:
301

解决方案二(进阶):用「正则」一次覆盖所有语言

如果你的旧结构是统一的,例如:

/product-category/xxx
/de/product-category/xxx
/fr/product-category/xxx

可以用 正则 301(Rank Math / Redirection 都支持):

^/(de|fr|es)?/product-category/old-slug/?$

跳转到:

/$1/product-category/interactive-flat-panel-display/

这个略微有点难,而且非理想情况下难以实现

滚动至顶部