2013-04-09 2 views
0

여러 호스트 이름에 대한 트래픽을 처리하는 단일 가상 호스트가 있습니다.Apache config에서 서버 별칭을 검색하는 방법은 무엇입니까?

Apache 구성에서 사용자가 요청한 호스트 이름에 따라 RewriteRules를 만들어야합니다. 안타깝게도 %{SERVER_NAME} 변수의 내용은 사용자가 요청한 별칭 대신 항상 기본 호스트 이름과 일치합니다 (구성의 ServerName으로 정의 됨).

예컨대 : 내가 site.company.com, site2.company.comsite3.company.com

NameVirtualHost *:80 
<VirtualHost *:80> 
    ServerName site.company.com 
    ServerAlias site?.company.com 

    RewriteCond %{SERVER_NAME} pattern 
    RewriteRule blah_depending_on_hostname_requested_by_user 
</VirtualHost> 

문제를 제공해야합니다 %{SERVER_NAME} 항상 site.company.com이며, 사용자는 site2.company.com 등의 별칭 중 하나를 요청하는 경우에도 마찬가지입니다.

어떻게 해결할 수 있습니까? 사용할 수있는 변수는 %{SERVER_ALIAS} 인 것 같습니다.

답변

2

아마도 %{HTTP_HOST}을 의미합니다. 그것이 브라우저에서 제공 한 정확한 사이트 이름입니다. the manual에서 :

당신은 호스트 이름, 포트, 또는 쿼리 문자열에 일치 할 경우, 각각 은 % {HTTP_HOST} % {SERVER_PORT}과 함께한다 RewriteCond, 또는 % {QUERY_STRING} 변수를 사용합니다.

+0

내가 그 중 하나를 놓친다 고 나는 믿을 수 없다 :-(정확하게 내가 찾고 있던 하나.) 고마워. –

관련 문제