freezner

[Apache] www 없이 접속하는 경우 www 붙이는 방법

예전에 DNS 설정을 통해 www를 붙이는 방법을 소개해드렸습니다. 하지만 이 방법은 네임서버를 직접 가지고 있는 경우에만 해당하기 때문에 매우 제한적입니다.

이번에 소개되는 방법은 .htaccess 파일을 이용해 접속 URL을 컨트롤 하는 내용입니다. 물론 .htaccess를 이용한 설정 방법은 다양하고 광범위하지만 여기서는 예를들어 freezner.com으로 접속했을때 www.freezner.com으로 이동되도록 하는 설정만 소개해드립니다.

freezner.com이나 www.freezner.com이나 결국 같은 사이트이기 때문에 별로 신경쓰지 않아도 되겠다 생각들겠지만.. 캐시서버나 워드프레스의 경우 캐시 플러그인을 사용하는 경우 이야기가 조금 달라집니다.

캐시의 경우 freezner.com과 www.freezner.com을 각각 캐시로 생성하여 하나의 사이트인데도 불구하고 2개의 사이트 캐시를 생성하게 됩니다. 이런 경우 캐시파일의 크기가 불필요하게 늘어날 뿐만 아니라  freezner.com과 www.freezner.com의 페이지 내용이 서로 다르게 보일 수 있습니다. 각각의 캐시 파일을 가지고 있기 때문이죠.

둘 중하나로만 접속이 되도록 설정을 해야 이 문제가 해결될 것입니다. 해결 방법은 간단합니다.

아래와 같이 Rewrite 설정을 추가해주시면 됩니다. 단, mod_rewrite 가 설치되어있어야 합니다. mod_rewirte는 /etc/httpd/conf/httpd.conf 에서 확인 가능합니다. (Apache를 rpm으로 설치한 경우)

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(freezner\.com)
RewriteRule (.*) http://www.freezner.com/$1 [L]
<IfModule>

여기서 조금 더 활용하면 더 다양하게 사용할 수 있습니다.

RewriteRule을 보시면 RewriteRule <대상URL> <이동할 URL>/$1 [L]

형태가 됩니다. 즉, 아래와 같이 설정도 가능합니다.

RewriteRule http://www.freezner.com/mypage http://www.freezner.com/mypage_test/$1 [L]

http://www.freezner.com/mypage로 접근시 http://www.freezner.com/mypage_test로 이동되도록 설정한 것입니다.

 

참고로 .htaccess 파일을 수정 후에는 아파치를 재시작 하셔야 적용됩니다.

Exit mobile version