*이 글은 개발자를 대상으로 하는 글이니 일반인은 알아듣기 힘들 수 있다. 일반인들도 도메인은 얼마든 옮길 수 있을 텐데, 그건 다른 글을 검색하는 편이 나을 수 있다.

도메인을 mytory.co.kr에서 mytory.net으로 변경했다. 새로 만든 일본어 블로그인 jp.mytory.co.kr 을 글 웹마스터 도구에 등록하고 보니 대상 지역이 한국으로 돼 있고 변경할 수 없는 것을 알게 됐기 때문이다. 일본에서 내 일본어 블로그 검색이 잘 되게 하려면 당연히 대상 지역 범위가 한국 이상이어야 할 것이라고 생각해, .net 도메인을 구입했다. (대상 지역이 특정 국가가 아닌 도메인 목록 보기)

데이터베이스를 다운받아 찾기 바꾸기를 한다

그럼 이제 시작해 보자. 처음 할 것은 데이터베이스에 있는 도메인을 고치는 거다.

MySQL을 백업받은 뒤, 에디트 플러스 같은 걸로 열어서 찾기 바꾸기로 도메인을 전부 변경한다. 나는 mytory.co.kr을 mytory.net으로 전부 바꿨다.

바꾼 파일을 업로드하든 뭘 하든 해서, 예전 데이터베이스를 싹 지우고 새로 올린다. 물론 그 전에 새 도메인과 호스팅이 연결돼 있어야 한다.

이렇게 하면 일단 mytory.net 으로 했을 때 문제없이 작동할 것이다. 만약 오작동이 있다면, 캐시와 쿠키를 모두 삭제해 보고 테스트하기 바란다. 나는 캐시 때문인지 멀티사이트 관련해 오작동이 있었다.

검색엔진에 알려주기 – 301 리디렉트

도메인만 바꿨다고 전부가 아니다. 도메인이 바뀌면, 새로운 도메인에 있는 내 글은 검색엔진에게 처음부터 다시 평가를 받아야 하는 것이다. 그렇게 놔둘 순 없다. 방법이 없을까? 당연히 있다. 검색엔진에 “이어 옮겨 갔어” 하고 알려 주면 된다. 그걸 301 리디렉트라고 한다.

만약 워드프레스 멀티사이트를 사용하고 있지 않다면, 현재 사용하는 테마의 functions.php 파일 맨 위에 아래 코드를 삽입하면 그만이다.

if(strstr($_SERVER['HTTP_HOST'], 'mytory.co.kr')){
    $new_host = str_replace('mytory.co.kr','mytory.net',$_SERVER['HTTP_HOST']);
    header("HTTP/1.1 301 Moved Permanently");
    header("location: http://" . $new_host . $_SERVER['REQUEST_URI'] ); 
    exit;
}

위 코드에서 당연히 mytory.co.kr은 옛 도메인, mytory.net은 새 도메인으로 바꿔서 넣어 줘야 할 거다.

이 코드의 용도는, 블로그가 호출됐을 때, 도메인을 검사해서 mytory.co.kr이면 mytory.net으로 301 리디렉트를 하는 것이다.

워드프레스 멀티사이트에서는?

그런데 이상하게 워드프레스 멀티사이트에서는 functions.php에 파일을 넣어도 작동하지 않았다. 아마 .htaccess가 중간에 동작을 가로채는 것 같았다. 심지어 index.php에 넣어도 작동하지 않았다.

그래서 다른 방법을 사용할 수밖에 없었다. .htaccess에는 .htaccess로 대응하기로 했다.

위 코드로 301_redirect.php라는 이름의 파일을 하나 만들었다. 그리고 블로그 최상위 폴더에 파일을 넣었다.

블로그 최상위 폴더의 .htaccess 파일을 연다. (멀티사이트를 사용하고 있다면 있을 거다. 정확히 .htaccess 파일이다. 파일명 없다. UNIX 시스템에서 .으로 시작하는 파일은 숨김파일이다. 아파치는 이걸 활용하는 거다. 그래서 파일명이 그냥 .htaccess다.)

.htaccess를 열고 맨 앞에 php_value auto_prepend_file "/www/html/301_redirect.php" 라고 넣는다. 파일명을 301_redirect.php로 만들지 않았다면 자신이 만든 파일명을 적어 주면 된다.

이렇게 하니 훌륭하게 작동하기 시작했다. 이제 이 파일이 검색엔진에 도메인이 이전된 것이라고 훌륭하게 알려주게 될 것이다. 일반 사용자들도 mytory.co.kr로 방문했을 때 자동으로 mytory.net으로 리디렉트하게 될 것이고 말이다.

기타

도메인을 옮기고 나니 301 리디렉트뿐 아니라 해야 할 게 꽤 있었다. 우선 구글 아날리틱스에 등록된 도메인도 변경해야 했다. 구글 웹마스터 도구에도 새로운 도메인을 등록해야 했다. 제트팩 통계도 새로 등록해야 했다. digiprove도 새로 등록했다. 트위터 툴도 새로 등록했다. 다음 뷰에도, 다음 검색에도 블로그를 새로 등록해야 할 것 같다. 트위터 프로필과 페이스북 페이지의 정보도 변경해야 했다. 내 블로그가 링크돼 있는 수많은 사이트들은 어떻게 처리해야 할지 모르겠다;; mytory.co.kr 도메인은 내년 4월까지 돈을 납부해 놨는데 1~2년 쯤은 더 유지해야 하는 게 아닐까 싶기도 하다.하려고 한다.

그래서 교훈은 웬만하면 도메인은 변경하는 게 아니다 하는 것이다.

도메인 변경 후 방문수 추이

도메인을 변경한 후 구글에서 거의 유입이 사라졌다가 3주 지나고 회복이 됐다. 휴=3

이 정도 리스크를 안을 생각이 있다면 도메인 변경을 해도 좋다는 결론 ㅋ

(그리고 참고로 나는 mytory.co.kr 도메인을 유지하면서 리디렉트를 시켰기 때문에 검색한 사람들이 404 에러를 만날 가능성은 없었다. 즉, 도메인을 옮기면서 mytory.co.kr 도메인의 순위도 함께 하락한 것으로 보면 된다. 여튼 4주째에 정상화!)