본문 바로가기
Server&OS/Apache

[Apache] mod_rewrite를 이용한 도메인 포워딩

by 백룡화검 2010. 12. 27.

간혹 사이트 구축시 도메인이 여러개인데, 여러 도메인으로 들어와도 모두 하나의 도메인으로 들어올 수 있도록 하는걸 도메인 포워딩이라고 합니다.

 

보통은 도메인등록사에서 도메인 포워딩을 이용하는 경우도 있지만, 직접 서버를 운영하는 경우 Apache의 mod_rewrite 모듈의 설정을 이용해 도메인 포워딩을 구현할 수 있습니다.

 

Apache 환경설정파일인 httpd.conf나 httpd-vhosts.conf에 설정하면 됩니다.

 

예를 들면 다음과 같습니다.

 

1. 보유한 도메인이 아래와 같이 복수일 때를 가정합니다. 일단은 간단하게 3개라고 할때

     1) mybrainz.com

     2) mybrainz.co.kr

     3) mybrainz.kr

 

     위의 3개 도메인 어느걸로 접속해도 "mybrainz.com"으로 경로가 바꿔서 접속되게 하고 싶습니다.

 

2. conf파일의 사이트 설정을 다음과 같이 합니다.

 

<VirtualHost *>
    DocumentRoot /home/mybrainz/


    ServerName www.mybrainz.com
    ServerAlias mybrainz.co.kr

    ServerAlias www.mybrainz.co.kr

    ServerAlias mybrainz.kr

    ServerAlias www.mybrainz.kr

 

    RewriteEngine On


    RewriteCond %{HTTP_HOST} ^mybrainz.co.kr$ [OR]
    RewriteCond %{HTTP_HOST} ^www.mybrainz.co.kr$ [OR]
    RewriteCond %{HTTP_HOST} ^mybrainz.kr$ [OR]
    RewriteCond %{HTTP_HOST} ^www.mybrainz.kr$ [NC]

 

    RewriteRule ^/(.*) http://www.mybrainz.com/$1 [L,R]
</VirtualHost>

 설명을 하자면 다음과 같습니다.

 

<VirtualHost *>
    DocumentRoot /home/mybrainz/


    ServerName www.mybrainz.com
    ServerAlias mybrainz.co.kr

    ServerAlias www.mybrainz.co.kr

    ServerAlias mybrainz.kr

    ServerAlias www.mybrainz.kr

 

    RewriteEngine On    <-- RewriteEngine을 시작한다는거죠...


    RewriteCond %{HTTP_HOST} ^mybrainz.co.kr$ [OR]            <-- RewriteCond를 이용해 조건을 설정하는 겁니다.
    RewriteCond %{HTTP_HOST} ^www.mybrainz.co.kr$ [OR]    <-- [OR]는 말 그대로... or.. 조건입니다.
    RewriteCond %{HTTP_HOST} ^mybrainz.kr$ [OR]
    RewriteCond %{HTTP_HOST} ^www.mybrainz.kr$ [NC]         <-- [NC]는 대소문자 구분이 없다는 의미입니다.

 

    RewriteRule ^/(.*) http://www.mybrainz.com/$1 [L,R]           <-- L : 마지막(last)라는 의미로 Cond는 이 위에 있는것만 적용됩니다.

                                                                                             <-- R : 리다이렉션(ReDirection)의 의미로 무조건 다음 주소로 넘기라는 뜻.
</VirtualHost>

 위와 같이 하면....

http://www.mybrainz.co.kr/abc/aaa.html   --> http://www.mybrainz.com/abc/aaa.html
http://www.mybrainz.kr/abc/aaa.html  ------> http://www.mybrainz.com/abc/aaa.html

 

이렇게 도메인 포워딩이 됩니다.