2012-05-26 2 views
0

나는 하나의 아파치 가상 호스트 가리키는 여러 도메인 이름이 : 내가 가진 마지막별칭과 함께 작업의 RewriteRules

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

:

ServerName domain1.com 
ServerAlias domain2.com 
ServerAlias domain3.com 

는 항상 내가 이런한다 RewriteRule을 사용하는 것과 동일한 URL을 표시하려면를 이 같은 별칭 :

Alias /niceurl /long/path/to/index.php 

모든 것을 제외 같이 잘 작동 할 때 사용자가 방문하는 domain2.com/niceurl/foo, 브라우저에 표시되는 URL이, domain1.com/path/to/index.php/foo 것보다는 domain1.com/niceurl/foo

내가 기대처럼 다른 경우가 즉, 작동하는지 추가해야

:

domain2.com/foo => domain1.com/foo 
domain1.com/shorturl/bar => domain1.com/shorturl/bar 

무엇을 달성하는 영리한 방법이 있나요 I 필요? 어떤 힌트를 주셔서 감사합니다!

+0

: //serverfault.com/questions/212071/serveralias-not-working – leo

답변

0

솔루션, 심볼릭 링크를 생성한다 :

문제가 실제로 HTTP와 관련된 것 같다
ln -s /<path to application> /<document root>/foo 
1

정말로 도메인 리디렉션에 QSA (Query String Append)가 필요합니까?

없이 규칙을보십시오 : 당신이 당신의 문서 루트에 액세스 할 수있는 경우

RewriteRule (.*) http://domain1.com/$1 [R=301] 
+0

당신은 QSA에 관한 것이지만 문제를 해결하지는 못합니다. 도메인 리디렉션은 정상적으로 작동하지만 "niceurl"부분은 보존되지 않습니다. (전체 URL을 사용하려는 이유는 도메인 이름이 IDN이고 많은 사람들이 도메인 이름에 å을 å, ö 등으로 대체하는 데 여전히 익숙하기 때문에 해당 도메인 이름을 가리키는 링크가 있습니다. 사이트) – leo