【发布时间】:2015-02-21 20:21:45
【问题描述】:
我有一个带有多域和多语言的typo3安装,其中并非每种语言都设置为每个域。
语言是de/fr/en/pt/es/cn/
www.example.de 可以是de/en/fr 但不是www.example.de pt/es/cn
现在我搞砸了。并且谷歌已经索引了大量错误的网址,例如
www.example.de/pt/
www.example.de/es/
www.example.de/cn/
它们指向未为此域设置的语言
我在 htaccess 中摆弄以将 301 带有通配符(?)的错误 url 重定向到 .tld
我正在寻找解决方案重定向,例如。
www.example.de/pt/* to www.example.de/
www.example.de/es/* to www.example.de/
www.example.de/cn/* to www.example.de/
其中 * 应表示语言参数之后的完整字符串/路径。
并且对于 .com 域的原因相同
www.example.com/fr/* to www.example.com/
www.example.com/de/* to www.example.com/
我在网上上下搜索,但没有任何尝试有效。
任何帮助都会非常感激。
迈出一小步
RewriteCond %{HTTP_HOST} ^www.example.de
RewriteRule ^cn/(.*)$ http://www.example.de/ [L,R=301]
RewriteRule ^pt/(.*)$ http://www.example.de/ [L,R=301]
RewriteRule ^es/(.*)$ http://www.example.de/ [L,R=301]
这似乎有效
现在是第二个域,因为我需要区分 .com 和 .de
RewriteCond %{HTTP_HOST} ^www.example.com
RewriteRule ^de/(.*)$ http://www.example.com/ [L,R=301]
RewriteRule ^fr/(.*)$ http://www.example.com/ [L,R=301]
这会破坏www.example.de/fr/whatever 并将其重定向到www.example.com。
所以看起来第一个条件匹配,最后一个规则适用于法语。
如何限制将规则分配给适当的域条件?
【问题讨论】:
标签: .htaccess internationalization