2012-01-13 92 views
1

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

那么是否有修复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

你不应该需要在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] 
+0

我可以尝试什么?你有其他的'RewriteRules'吗?这个*应该*工作,假如你以后不做其他事情重写它。 – 2012-01-13 15:44:16

+0

我的意思是无效的网址,我按照你的建议清理了htacces,而我几乎在那里:old-domain.com/sl重定向到www.new-domain.com/sl,但是www.old-domain .com/sl重定向到www.new-domain.comsl,所以我不知道为什么是错的...嗯 – 2012-01-13 15:57:40

+0

不确定。抱歉。如果您完全复制我的代码。有用。我测试过了。您有其他规则或代码导致该问题。 – 2012-01-13 16:16:13

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

+1几乎在那里,欢迎来到SO。 – 2012-01-13 15:10:05