.htaccess htaccess重定向(多域多语言)子文件夹通配符

.htaccess htaccess重定向(多域多语言)子文件夹通配符,.htaccess,internationalization,.htaccess,Internationalization,我安装了一个带有多域和多语言的typo3,并不是每个域都安装了每种语言 语言为de/fr/en/pt/es/cn/ www.example.de可以是de/en/fr,但不能是 www.example.de pt/es/cn 现在我把事情搞砸了,谷歌索引了大量错误的URL,例如 www.example.de/pt/ www.example.de/es/ www.example.de/cn/ 它们指向未为此域设置的语言 我在htaccess中摆弄,用通配符(?)将错误的URL重定向到.tld 我

我安装了一个带有多域和多语言的typo3,并不是每个域都安装了每种语言

语言为de/fr/en/pt/es/cn/

www.example.de
可以是
de/en/fr
,但不能是
www.example.de pt/es/cn

现在我把事情搞砸了,谷歌索引了大量错误的URL,例如

www.example.de/pt/
www.example.de/es/
www.example.de/cn/
它们指向未为此域设置的语言

我在htaccess中摆弄,用通配符(?)将错误的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/
其中,*应表示语言参数后面的完整sting/路径

当然,对于.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/which
,并将其重定向到
www.example.com

看起来第一个条件是匹配的,最后一个规则适用于法语


如何限制仅将它们分配给相应域条件的规则?

确定看起来每个条件和相应的规则都需要在一行中重复写入

RewriteCond %{HTTP_HOST} ^www.example.de
RewriteRule ^cn/(.*)$ http://www.example.de/ [L,R=301]
RewriteCond %{HTTP_HOST} ^www.example.de
RewriteRule ^pt/(.*)$ http://www.example.de/ [L,R=301]
RewriteCond %{HTTP_HOST} ^www.example.de
RewriteRule ^es/(.*)$ http://www.example.de/ [L,R=301]

RewriteCond %{HTTP_HOST} ^www.example.com
RewriteRule ^de/(.*)$ http://www.example.com/ [L,R=301]
RewriteCond %{HTTP_HOST} ^www.example.com
RewriteRule ^fr/(.*)$ http://www.example.com/ [L,R=301]
这似乎奏效了

我们高度赞赏任何更好的解决方案