我正在使用 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 ,否则重定向到备用 / en /post1 URL。有一个例外,因为“/ 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]
可能有更好的方法可以做到这一点,但它确实有效。感谢大家最初的帮助!