2014-10-31 5 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

당신의 두 가지 규칙 갈등 입력 :

  • 기본 URL : 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

1

당신은 mysite.com의 루트의 .htaccess 단지이 하나의 규칙이 필요합니다

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