(SEO를 위한) mod_rewrite 이용하여 사이트 주소 URL 에서 자동으로 www 제거 또는 붙이기

우선 SEO (Search Engine Optimization) 란 검색엔진 최적화라고 합니다.
자신의 사이트나 웹페이지를 검색엔진의 결과에 최대한 상위에 , 자주 , 많이 나오게 할 수 있는 방법들입니다.

보통 사용자의 편의를 위하여 또는 자신도 모른채 자신의 사이트 주소를 www.example.com 과 example.com 2개의 주소(www 있는것과 www 없는것)를 같이 서비스하는 경우가 많이 있습니다.

문제는 검색엔진은 이 2개의 주소를 2개의 다른 사이트로 인식한다는것입니다. 즉 실제로는 똑같은 주소의 똑같은 페이지이지만 검색엔진은 다른 사이트의 다른 페이지로 인덱싱하게 되므로 검색 결과가 우리가 예상했던것과 다르게 나올 수 있습니다.

이런 이유로 한가지 주소로 정하는것이 좋습니다.

그럼 검색엔진은 www 있는것과 www 없는것중에 어느것을 더 좋아할까요?
상관없습니다. 그것들에 우선순위는 없다고 합니다.
그러므로 자신이 원하는것으로 하나를 정하면 됩니다.
www 가 붙은것이 오랜된 관습이니 그렇게 하셔도 되고,
실제로 www 도 서브도메인의 이름이므로 전혀 불필요하다고 생각하시면 그렇게 하셔도 됩니다.
(공식적으로 우선순위가 없는것은 맞는것 같지만 www가 있는것과 없는것 어느것이 더 나은지에 대한 의견은 조금씩 다른것 같습니다.)


아파치에서 mod_rewrite 를 이용하여 자동으로 www 를 제거하는 방법과 붙이는 방법은 다음과 같습니다.

.htaccess 파일에 각각 원하는 코드를 추가하시면 됩니다.
.htaccess 파일은 document_root 즉 웹디렉토리 가장 상위 디렉토리(/)에 위치합니다.


- www 제거하기

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
</IfModule>



- www 붙이기

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteRule ^(.*)$ "http://www.%1/$1" [L,R=301]
</IfModule>



여기서 중요한것은 301 permanent redirect (R=301) 한다는것입니다.
그래야 검색엔진도 어떤주소가 정확한것인지 알 수 있습니다.

보통 잘 쓰는 방법인 해당 url 의 첫 페이지 (index.html) 에 코딩으로 www 가 붙거나 없는 주소로 redirect 시킬경우 첫페이지가 아닌 페이지로 접근했을때에는 처리가 안되지만
위와 같이 하면 어떤 페이지로 접근하더라도 원하는 주소로 redirect 시킬수 있습니다.

또 사용자가 www 를 붙이는지 안붙이는지에 대한 배려나 고려도 안해도 됩니다.

(위의 검색엔진이란 구글을 기준으로 말했지만 다른 검색엔진도 비슷할것이라 생각됩니다.)

참고자료

댓글 1개

(1)
좋은 글이네요.

전 개인적으로 www 없는게 더 좋네요. ^^

댓글쓰기