재밌는 자료2016.02.18 10:12

별칭 도메인 (CNAME), 서브도메인에 하위 디렉토리 링크 포워딩 하기

 

도메인을 보면 서브도메인 서비스 형식은 아래와 같다

 

[*****.naver.com] 이러한 서브도메인에 특정 주소지 또는 IP를 입력하여 리다이렉트 시키거나 포워딩을 할 수 있는데, 문제는 하위폴더는 적용되지 않는다.

 

[cafe.naver.com]이라 할 때 연결되는 포워딩 대상이 [cafe2.naver.com]과 같은 형식이면 무관하나, 하위 디렉토리나 디렉토리내 파일 즉, [cafe2.naver.com/dir] 또는 [cafe2.naver.com/file.html]과 같은 형식은 적용되지 않는다는 것이다.

 

이러한 문제를 보완하려면 meta소스 또는 자바스크립트를 이용한 리다이렉팅으로 처리하면 되지만, 이는 번거로울 뿐 아니라 index파일의 위치에 따라 안될 수 있다

 

여기서는 .htaccess를 이용하여 mod_rewrite가 꼭 지원되야 하는 조건이다.

 

만약 SSH에서 apache 또는 tomcat의 환경을 직접 설정할 수 있는 상태라면 아파치 환경설정 파일을 열어 mod_rewrite모듈을 찾아본다.


혹시 모듈 프로시저가 없다면 입력해주자


ntp.poisoneye.info접속시 같은 디렉토리 내에 있는 폴더 안으로 포워딩 한다고 볼 수 있다.

접속주소

포워딩주소

ntp.poisoneye.info

ntp.poisoneye.info/ntp/index.php

ftp.poisoneye.info

ftp.poisoneye.info/ftp/index.php

str.poisoneye.info

str.poisoneye.info/str/index.php

 

물론 구지 아파치 설정파일을 건들이지 않아도 무관하다, index.php가 상주해있는 폴더에 .htaccess파일을 생성하여 조건부 rewrite사용을 할 수 있기 때문이다.

 

mod_rewrite에 대한 조건부 설정은 다양하니 아래를 참고해보자.

 

www.aaa.com으로 시작하는 주소만 www.bbb.net로 보내기

: aaa.com의 뿌리 자료방(루트 디렉토리).htaccess에 추가한다.

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.aaa\.com)

RewriteRule (.*) http://www.bbb.net/$1 [L]

 

www.aaa.comaaa.com으로 시작하는 주소를 www.bbb.net로 보내기

: aaa.com의 뿌리 자료방의 .htaccess에 추가한다.

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.aaa\.com|aaa\.com)

RewriteRule (.*) http://www.bbb.net/$1 [L]

 

aaa.comwww.aaa.com으로 바꾸기

: aaa.com의 뿌리 자료방 .htaccess에 추가한다.

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(aaa\.com)

RewriteRule (.*) http://www.aaa.com/$1 [L]

 

aaa.comaaa.com/bbb로 보내기

: aaa.com의 뿌리 자료방 .htaccess에 추가한다.

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(aaa\.com|www\.aaa\.com)

RewriteRule (.*) /bbb/$1 [L]

[L]은 이후에 뒤에 구문이 나오든 그 줄에서 끝낸다는 뜻이다.

aaa.com/bbb를 하위 주소까지 ccc.net로 보내기 (영구 이동)

# aaa.com/bbb/.htaccess에 추가

RewriteEngine On

RewriteRule (.*) http://www.ccc.net/$1 [R=301,L]

또는

# aaa.com/.htaccess에 추가

RewriteEngine On

RewriteRule ^bbb/(.*) http://www.ccc.net/$1 [R=301,L]

 

여기서 R=301은 그 주소로 영구 이동하는 것을 나타낸다. 이렇게 하면 도메인 주소를 바꿨을 때에 검색기들이 알아 차리고, 옛 주소를 새 주소로 갱신할 수 있다.

 

aaa.com이 들어가는 모든 주소(서브도메인 포함)bbb.net로 보내기

: aaa.com의 뿌리 자료방 .htaccess에 추가한다.

RewriteEngine On

RewriteCond %{HTTP_HOST} aaa\.com

RewriteRule ^(.+) %{HTTP_HOST}$1 [C]

RewriteRule ^([^.]+)\.aaa\.com(.*) http://$1.bbb.net/$2 [L]

RewriteRule ^aaa\.com(.*) http://bbb.net/$1 [L]

 

출처 : http://pat.im/461

 

이렇게 하면 도메인 값도 아끼고 서버의 자원도 활용할 수 있으나, 가끔가다 오류가 발생하니 주의하면서 하도록 하자

Posted by Elly Tran :) | 지창훈