2013-07-19 5 views
2

와일드 카드 하위 도메인 리디렉션을 포함하여 mod_rewrite를 새 도메인으로 리디렉션하는 방법을 알아 내려고합니다.mod_rewrite를 사용한 와일드 카드 하위 도메인 리디렉션

나는 그런 결과를 기대하고있다 :

domain1.com      -> domain2.com 
domain1.com/foo/bar?baz=quux  -> domain2.com/foo/bar?baz=quux 
www.domain1.com     -> www.domain2.com 
www.domain1.com/foo/bar?baz=quux -> www.domain2.com/foo/bar?baz=quux 
sub.domain1.com     -> sub.domain2.com 
sub.domain1.com/foo/bar?baz=quux -> sub.domain2.com/foo/bar?baz=quux 
*.domain1.com     -> *.domain2.com 
*.domain1.com/foo/bar?baz=quux -> *.domain2.com/foo/bar?baz=quux 

나는이 같은 노력했다 : 나는 RewriteCond에서 잡은 옵션 하위 도메인을 참조 기대했다

RewriteCond %{HTTP_HOST} !^(.+\.)?domain2.com$ [NC] 
RewriteRule^http://%1domain2.com%{REQUEST_URI} [R=301,L] 

그러나 %1 인을 까지 가져 오지 못했기 때문에 모든 요청은 http://domain2.com%{REQUEST_URI}으로 리디렉션됩니다.

내가 뭘 잘못하고 있니?

답변

5

다른 곳에서 다른 RewriteCond를 쓰러 뜨릴 수 있습니까? 귀하의 예에서 RewriteCond가 ! 부정 접두어로 인해 domain1.com으로 끝나는 HTTP_HOST와 절대 일치하지 않는 것처럼 보입니다.

RewriteCond %{HTTP_HOST} ^(.+\.)?domain1.com$ [NC] 
RewriteRule^http://%1domain2.com%{REQUEST_URI} [R=301,L] 
:

이 약간의 수정은 당신이하고자하는 일을 할 수있는