.htaccess多语言重定向

时间:2012-01-13 15:02:25

标签: apache .htaccess mod-rewrite

我的.htaccess和google有一个奇怪的问题。我有多个不同的根域,301重定向到主域,这没关系,但我也有多种语言,如.com / sl,.com / it,.com / en,.net / sl,.net /它,.net / en问题是,当你点击谷歌的链接是wwww.old-domain.com/sl这是正确的,但当你点击它时,网址就像这个www.new-domain。 comsl 所以缺少斜杠,当然页面不起作用。

htaccess有解决方法吗?我的htacces重定向是:

RewriteCond %{HTTP_HOST} ^old-domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.old-domain.com/$ [OR]
RewriteCond %{HTTP_HOST} ^old-domain.net/$ [OR]
RewriteCond %{HTTP_HOST} ^www.old-domain.net$
RewriteRule ^(.*)$ "http\:\/\/www\.new-domain\.com$1" [R=301,L]

所以我必须将此www.old-domain.comsl修复为www.new-domain.com/sl

感谢所有人。

2 个答案:

答案 0 :(得分:3)

我想你忘了斜线..试试这个?

RewriteCond %{HTTP_HOST} ^old-domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.old-domain.com/$ [OR]
RewriteCond %{HTTP_HOST} ^old-domain.net/$ [OR]
RewriteCond %{HTTP_HOST} ^www.old-domain.net$
RewriteRule ^(.*)$ "http\:\/\/www\.new-domain\.com\/$1" [R=301,L]

答案 1 :(得分:2)

/中不应该有RewriteCond。此外,你正在逃避错误(你需要在相反的地方进行)。

使用以下内容进行清理,看看它是否能解决您的问题。

RewriteCond %{HTTP_HOST} ^old-domain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.old-domain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^old-domain\.net$ [OR]
RewriteCond %{HTTP_HOST} ^www\.old-domain\.net$
RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]