도메인 변경시 기존 검색엔진 링크를 새 도메인에 연결하는 방법 (PHP 필요) – 301 리다이렉션

Posted on

도메인 주소를 바꾼 경우 검색엔진이 긁어간 링크가 새 도메인 주소로 리다이렉트되어야 합니다. 여러 방법으로 가능한데 이번 글에서는 PHP로 하는 방법을 해설합니다.

이전도메인: shutterpress.net
바뀐도메인: shutterpress.info

이고 여기에 워드프레스가 운용중이라면 아래와 같은 방법으로 리다이렉트가 됩니다.

보통 웹호스팅이면 PHP를 제공하고, 웹서버에서 mod_rewrite를 제공합니다. 워드프레스에서 쓰는 슬러그도 mod_rewrite로 작동하는데요. 아래와 같은 구조입니다.

shutterpress.net/blog/category/lovelymusic

이 경우 blog는 워드프레스가 설치된 디렉토리이고, category/lovelymusic은 워드프레스 설정에서 고유주소 설정으로 지정한 문자열을 의미합니다.

PHP로 이 주소를 읽어들이면 $_SERVER[‘REQUEST_URI’] 에 이 정보가 들어갑니다. 그래서 이 정보를 읽어와서 리다이렉트 함수에 바뀐 주소와 조합해서 실행하면 누군가 검색엔진에서 이전 도메인의 링크를 클릭하면 이전 도메인 주소가 이후 도메인으로 연결되게 바꿀 수 있습니다.

우선 이전 도메인이 연결된 서비스는 해지하지 마시구요. .htaccess 만 남기고 파일을 지워도 됩니다.

이 상태에서 이전 도메인의 워프 최상위 디렉토리 (위의 예에서는 shutterpress.net/blog 나 public_html/blog 일겁니다) 에 index.php 파일을 만들어 아래처럼 입력해둡니다.

<?
Header("Location: 바뀐 도메인" . $_SERVER['REQUEST_URI'], true, 301);
?>

$_SERVER[‘REQUEST_URI’] 에는 사이트 주소에서 도메인 네임 이후의 URI 문자열이 저장되어 있습니다. 이전 도메인인 shutterpress.net 이후의 문자열이 저장되어 있으니 이 문자열을 바뀐 도메인인 shutterpress.info 에 붙여서 리다이렉션 헤더를 보내는 것입니다.

이렇게 설비해두고 바뀐 도메인에 워프를 이전해서 고유주소를 이전 도메인에 설치되었던 워프와 똑같이 설정해놔야 하구요. 그래야 위에 REQUEST_URI가 동일해져서 다른 조치 안해도 리다이렉션이 완수됩니다.

작동 핵심은 이렇습니다.

(1) 검색엔진 링크를 누르면
(2) shutterpress.net 에 저장한 index.php가 감지
(3) URI 파라메터를 분리해서
(4) 바뀐 도메인과 조립후 헤더 함수에 전달
(5) 헤더 함수가 바뀐 도메인으로 연계
(6) 이 과정에 잘 작동하면 검색엔진 크롤러가 감지해서
(7) 검색결과의 링크가 바뀐 도메인으로 변경됨

주의사항: 이전 도메인의 워프 설치되었던 최상위 디렉토리에 .htaccess가 원본대로 남아있어야 합니다. (mod_rewrite가 작동해야 하므로)
그리고 바뀐 도메인의 워프 고유주소가 이전 도메인의 워프 고유주소가 똑같아야 합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다