2012-07-24 12 views
1

영어와 스페인어를 모두 지원하는 사이트를 다루고 있습니다. 언어 별 하위 도메인에 대한 모든 요청을 기본 도메인 (en.mysite)으로 리디렉션하는 방법을 알고 싶습니다. com 및 es.mysite.com ~ mysite.com).하위 도메인을 기본 도메인으로 리디렉션

전체 사이트는 PHP로 프로그래밍되었으며 languagesection GET 매개 변수를 처리하고 이에 따라 내용을 표시하는 기본 스크립트 index.php이 있습니다.

이제 mysite.com의 루트에있는 .htaccess 파일에서 다음을 시도했습니다. 나는 그것이 무엇을하려고하는지 명확하게 생각한다 :

RewriteEngine On 

# English redirects 

RewriteRule ^en.mysite.com$ index.php?language=English&section=Main 
RewriteRule ^en.mysite.com/store$ index.php?language=English&section=Store 
RewriteRule ^en.mysite.com/create_account$ index.php?language=English&section=CreateAcc 

# Spanish redirects 

RewriteRule ^es.mysite.com$ index.php?language=Spanish&section=Feed 
RewriteRule ^es.mysite.com/comprar$ index.php?language=Spanish&section=Store 
RewriteRule ^es.mysite.com/crear_cuenta$ index.php?language=Spanish&section=CreateAcc 

그러나 이것은 효과가 없다. 아무도 내가 여기서 뭘 잘못하고 있다고 말할 수 있습니까?

답변

0

RewriteRule에 일치 항목의 일부로 호스트 이름을 포함 할 수 없습니다. 호스트 이름은 URI와 일치하기 때문에 포함 할 수 없습니다. 당신은 당신의 규칙 각 호스트 이름 에 대해 일치하는 별도의 RewriteCond를 사용해야합니다 :

다음
RewriteCond %{HTTP_HOST} ^en.mysite.com$ [NC] 
RewriteRule ^$ /index.php?language=English&section=Main 

RewriteCond %{HTTP_HOST} ^en.mysite.com$ [NC] 
RewriteRule ^store$ /index.php?language=English&section=Store 

RewriteCond %{HTTP_HOST} ^en.mysite.com$ [NC] 
RewriteRule ^create_account$ /index.php?language=English&section=CreateAcc 

스페인 다시 작성 :

RewriteCond %{HTTP_HOST} ^es.mysite.com$ [NC] 
RewriteRule ^$ /index.php?language=English&section=Feed 

RewriteCond %{HTTP_HOST} ^es.mysite.com$ [NC] 
RewriteRule ^comprar$ /index.php?language=English&section=Store 

RewriteCond %{HTTP_HOST} ^es.mysite.com$ [NC] 
RewriteRule ^crear_cuenta$ /index.php?language=English&section=CreateAcc 
+0

귀하의 답변을 주셔서 대단히 감사합니다. 나는 그것이 작동하는지 모르겠다. 하위 도메인을 다루는 것이 훨씬 쉽기 때문에 하위 디렉토리를 사용하게되었다. –

관련 문제