웹사이트 도메인 이전하기

개인 블로그용 독립 도메인을 구입해서 새로운 도메인으로 이전을 하려니 은근히 준비할 것들이 많았다. 기존 포스팅들이 이미 구글, 네이버 등의 검색엔진에 잘 인덱싱되어있는 것들이 많다보니 이것을 어떻게하면 잘 유지하면서 이전 할 수있을지가 관건이었다.

이전 과정 요약

  1. 새로운 도메인과 예전 도메인에 대해 사이트가 각각 잘 동작하도록 셋팅을 해둔다.
  2. SEO를 위해 구글 웹마스터 도구에서 기존 도메인 -> 새도메인으로 변경을 해준다.
    사이트 이전 을 참조

  3. 기존 도메인으로 접속시 새 도메인으로 웹서버 자체 설정을 변경하여 301 Redirection 을 설정해 둔다.

웹서버 301 리디렉션 설정하기

301 redirection은 웹사이트가 영구적(permanent)으로 이동되었다는 것을 나타내는 HTTP 코드이다. 따라서 검색엔진이 301을 만날경우, 기존 도메인 대신, 영구적으로 옮겨진 새로운 도메인을 인덱싱하게된다.
자바스트립트나 메타 태그를 이용한 임시(temporary) 리디렉션의 경우 검색엔진에 새 도메인으로 인덱싱이 되지 않기 때문에 SEO(Search Engine Optimization)를 고려한다면 해서는 안된다.

서버도 이전하고 도메인도 변경한 경우

이 경우는 아예 도메인을 변경하면서 서버도 새로운곳으로 이전한 경우이다. 기존서버와 새로운 서버가 아예 다를 경우이다. 이 때는 단순히 리디렉션을 위해 다음 내용을 .htaccess 파일에 추가해주면 된다.

Redirect 301 / http://www.new_domain.com/

동일 서버인데 도메인만 변경한 경우

이 경우는 실제 동작중인 웹서버는 하나인데 도메인만 새로 변경하려는 경우이다. 이 경우에는 위에 언급한 방법을 쓸 경우 redirection에 의한 무한루프(infinite loop)에 빠지게 된다.
www.old_domain.com 에서 www.new_domain.com 으로 주소 변경시 다음 내용을 .htaccess 파일에 추가해주면 된다.

# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?old_domain\.com$ [NC]
RewriteRule ^ http://www.new_domain.com%{REQUEST_URI} [R=301,L]

rewrite 조건식에 의해 기존 도메인으로 시작되서 들어오는 요청은 바로 새도메인 으로 301 리다이렉트 되고, 새 도메인으로 접속될 경우 아무런 rewrite 없이 자연스레 동작하게 된다.