2012-07-27 2 views
0

단일 도메인을 사용하여 단일 웹 호스팅에 TEST, CERT 및 PROD 웹 페이지를 구현하고 싶습니다. 웹 사이트는 첫 번째 하위 도메인에 와일드 카드를 사용하고 있습니다.와일드 카드 및 여러 하위 도메인을 사용하여 htaccess를 다시 작성하십시오.

나는 다음과 같은 코드가 있습니다 :

# for TEST 
RewriteCond %{HTTP_HOST} (.*).test.domain.com 
RewriteCond %{REQUEST_URI} !^/directory3 
RewriteRule ^(.*)$ /directory3/$1 [L] 

# for CERT 
RewriteCond %{HTTP_HOST} (.*).cert.domain.com 
RewriteCond %{REQUEST_URI} !^/directory2 
RewriteRule ^(.*)$ /directory2/$1 [L] 

# for PROD 
RewriteCond %{HTTP_HOST} (.*).domain.com 
RewriteCond %{REQUEST_URI} !^/directory1 
RewriteRule ^(.*)$ /directory1/$1 [L] 

이 3 문제가있다 : 사용자가 새로운 URL을 볼 수 있도록 URL을 브라우저 ADRESS 줄에 변경
1)합니다.

http:\\subdomain1.cert.com\directory2 

대신 : 나는 사용자를하고자하는 원래 유형의 URL을
개 표시 참조

http:\\subdomain1.cert.com 

2) 테스트 및 CERT 재 작성은 Internal Server Error을 가지고있다. 내가 고정 하위 도메인

3)의 와일드 카드를 교체 할 때
그것은
찌르다의 RweriteCond 항상 CERT 및 TEST 하위에 대한도 (유효 잘 작동합니다. 항상 Directory1에 전달되는 것을 의미

답변

1

. 규칙은 호스트 때문에 서로 interferring됩니다. (.*).domain.com 또한 인증서 및 테스트 호스트와 일치 당신은 당신의 "PROD"규칙을 제외해야합니다

RewriteCond %{HTTP_HOST} !test.domain.com 
RewriteCond %{HTTP_HOST} !cert.domain.com 
RewriteCond %{HTTP_HOST} (.*).domain.com 
RewriteCond %{REQUEST_URI} !^/directory1 
RewriteRule ^(.*)$ /directory1/$1 [L] 

이 # 2와 #을 해결 3에 관해서. 리다이렉트되고있다. 이 규칙은 대상에 http:// 또는 대괄호 안에 R 플래그가 없으면 브라우저를 리디렉션하지 않습니다.

관련 문제