2014-10-31 34 views
0

我有一個名爲es的子域名,我需要當有人想輸入mysite.com/es時,它可以重定向到es.mysite.com。它適用於以下htaccess:Htaccess重定向子域名不起作用

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www.mysite.com$ [NC] 
RewriteRule ^(.*)$ http://es.mysite.com/$1 [R=301,L] 
RedirectMatch permanent ^/es/?$ http://es.mysite.com/$1 

問題是當有人輸入mysite.com/es/bla/bla/bla。在這種情況下,使用我的htaccess上的當前配置,用戶不會重定向,我希望用戶可以重定向。

例如:

如果我輸入:

http://letsbonus.com/es/barcelona/spa-experiencie-para-2-opcion-masaje-desconecta-roc-nature-273710

這被重定向到:

http://es.letsbonus.com/barcelona/spa-experiencie-para-2-opcion-masaje-desconecta-roc-nature-273710

在此先感謝。

回答

0

你兩個規則進入衝突:

  • 基地網址:http://example.com/es/test
  • 非www重定向 - >http://www.example.com/es/test
  • es子域重定向 - >http://es.example.com/test
  • 非www重定向... (我們不在www子域下)

我會用這個htaccess的獲取除外結果:

RewriteEngine On 

RewriteCond %{HTTP_HOST} !^(www|es).example.com$ [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] 

RewriteRule ^es/(.*)$ http://es.example.com/$1 [R=301,L] 
+0

沒有,它仍然無法正常工作。 – Willy 2014-10-31 18:22:27

1

您在mysite.com根的.htaccess只需要這一個規則:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?(mysite\.com)$ [NC] 
RewriteRule ^es/(.*)$ http://es.%1/$1 [R=301,L,NE]