WPML
状态
已解决

问题概述

如果在文章已发布并翻译后更改 URL 格式,那么直接在浏览器地址栏中输入 URL 时,可能会遇到 URL 重定向的问题。

例如:

  • 您在 WPML 中使用的是不同语言使用不同目录,且您的网站有一个页面 URL,例如 http://mysite.com/es/pagina-de-muestra/
  • 现在将您的 URL 格式更改为每种语言使用不同的域名,上述 URL 现在变为 http://misitio.es/pagina-de-muestra/
  • 直接打开 http://mysite.com/es/pagina-de-muestra/

结果是出现 404 服务器通知。

* 注意 – WPML 黏性链接插件可防止类似但不完全相同的情况发生,但在这种情况下,由于您是直接使用 URL,因此它不起作用

临时解决方法

这不是 bug,但可以通过修改网站的 .htaccess 文件来进行自定义修复。由于这取决于您的设置,并且属于高级自定义工作,我们无法为您提供帮助,但我们可以为您提供一个示例。

对于上述情况,您应该将类似的代码放置在 WordPress 规则的正上方。直接放在 .htaccess 的顶部即可:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mysite.com [NC]
RewriteRule ^es(.*)$ http://misitio.es$1 [L,R=301]

现在,所有对 http://mysite.com/es/pagina-de-muestra/ 的请求最终都将跳转到 http://misitio.es/pagina-de-muestra/。

请记住:


  • 这仅在启用了 mod-rewrite 的 Apache 上有效

  • 关于此内容的资源有很多,例如此博客

目前,重要的是您要知道,更改 URL 格式时预期的行为是,如果您尝试直接(通过地址栏)访问旧域名,系统将通过 301 重定向到主要的默认语言

所有已知问题 →