2010-06-12 6 views
5

아파치 mod_rewrite 모듈은 정말 새로운 기능입니다. 내 회사 인트라넷에 http://abc이라는 페이지가 있습니다. URL 바에 http://abc을 입력 할 때마다 사용자가 http://abc.somecompanyname.com으로 리디렉션되기를 바랍니다. 누군가 제게 옳은 방향으로 제공하고 모범을 보일 수 있습니까?Apache Rewrite를 사용하는 사용자를 정규화 된 도메인 이름으로 어떻게 리디렉션합니까?

나는 이것이 대답하기 쉬운 질문이어야한다고 생각한다. 여러분 모두에게 감사드립니다.

마가 복음

답변

4

당신은 ABC의 서버 처리 요청에이만큼 간단 VirtualHost 항목 정의와 그 작업을 수행 할 수 :

<VirtualHost *:80> 
    ServerName abc 
    RewriteEngine on 
    RewriteRule ^/(.*)$ http://abc.somecompanyname.com/$1 [R,L] 
</VirtualHost> 
+0

URL을 변경하지 않고 리디렉션 할 수 있습니까? 예를 들어 http://mywebsite.example.com/a를 작성하면 브라우저의 URL을 변경하지 않고 쿼리를 http : // localhost : 7777/a로 리디렉션합니까? – rsabir

+0

rsabir : 당신이 묻는 것은 대개 리디렉션이 아닌 프록시라고합니다. – serverhorror

1

은 더 나은 일을 아파치 URL Rewriting Guide의 조언을 발견했다.

내가 함께 결국 :

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^foo\.bar\.com [NC] 
RewriteCond %{HTTP_HOST} !^$ 
RewriteRule ^/(.*)   http://foo.bar.com/$1 [L,R] 

라인 "에한다 RewriteEngine은"아파치 예에 포함되지 않았습니다. 어쩌면 기본적으로 켜져있을 수도 있지만 제 경우에는 추가해야 할 수도 있습니다. Apache 2.4 documentation에서

4

인용구 :

이 아니라 모두의 mod_rewrite를 포함하지 않지만 해결하는 가장 좋은 방법은 비 정식 호스트 이름 (들)에 대한 가상 호스트에 배치 리디렉션 지시어를 사용합니다.

<VirtualHost *:80> 
    ServerName undesired.example.com 
    ServerAlias example.com notthis.example.com 

    Redirect/http://www.example.com/ 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName www.example.com 
</VirtualHost> 

이 다른 가상 호스트를 필요로하지 않습니다, 그러나 그의 부족이 없다. 이 솔루션은 나에게 매우 잘 작동하며, '원하지 않는'호스트의 리디렉션과 표준 호스트의 구성이 분리되는 방식을 좋아합니다.

+0

잘 작동하며 경로 이름 및 매개 변수 얻기도 리디렉션됩니다. – derFunk

관련 문제