【发布时间】:2021-09-09 21:42:41
【问题描述】:
我正在使用 qtranslate 运行 WP 博客。它允许我创建多种语言的帖子。
1 .不带 qtranslate 的示例 URL:
2 。具有本地化内容的示例 URL:
-
www.mysite.com/**en**/post1(英语 - 我的默认和后备)
不幸的是,搜索引擎等仍然记得我的旧链接 (1.),这些仍然可以访问。所以“www.mysite.com/post1”现在显示我的英文内容没有重定向。但它应该做的是让 301 位用户访问“www.mysite.com/en/post1”。
所以现在我需要一个规则来检查 URL 中是否存在 /en/post1 或 /de/post1,否则重定向到后备 / zh/post1 网址。有一个例外,因为“/shop”是一个真正的子目录,不需要以语言信息开头。
-- 更新--
我做到了!!!这实际上很有趣,但我花了很长时间才弄清楚。
RewriteRule ^$ en [R=301,L]
RewriteRule ^([a-z]{2})/{1}$ $1 [R=301,L]
RewriteRule ^([a-zA-Z0-9\-\_]{3,})(/|$)$ en/$1 [R=301,L]
可能有更好的方法来做到这一点,但它确实有效。感谢大家最初的帮助!
【问题讨论】:
-
寻找“en”、“de”等看起来是个坏主意,可能很难维护。你已经有一个例外,可能还会有更多,而且看起来并不漂亮。
-
卡米洛,你是对的。它并不漂亮 - 我只是对 Rewrites 的了解不够,无法使其正常工作!
标签: regex wordpress url-rewriting wordpress-theming qtranslate