본문 바로가기
웹 개발/웹사이트

301 리다이렉트 설정하는 방법 (.htaccess)

by KISCH 2024. 8. 12.
반응형

 

웹사이트 도메인이 변경되었거나 URL 구조 등이 변경되었을 경우 301 리다이렉트로 다른 URL로 보낼 수 있습니다. 이 글에서는 SEO에 영향을 주지 않고 정확하게 301 리다이렉트 하는 방법을 다룹니다.

 

목차

     

     

    리다이렉트

    리다이렉트는 자동으로 다른 URL로 보내는 것을 말합니다. 예를 들어 www.mysite.com 로 주소를 입력했는데 www.newsite.com 으로 이동했다면 리다이렉트가 설정된 것입니다. 

     

    1. Meta refresh (웹 표준 X)

    meta refresh는 문서에서 부가적인 정보를 제공하는 정도의 태그입니다. 도메인을 리다이렉트 시키는데 적절하지 않습니다. 

    <meta http-equiv="refresh" content="0; url=http://newsite.com">

     

    content=숫자는 몇 초 후에 이동하는지를 뜻합니다. url 이후 주소를 생략하면 현재의 페이지를 다시 읽어옵니다.

     

    2. 자바스크립트 (웹 표준 X)

    기존 페이지를 새로운 페이지로 변경시키는 자바스크립트 코드입니다. 

    <script type="text/javascript">
    	var=re_url="http://newsite.com/";
        	window.location.replace(re_url);
    </script>

     

    location.href와 차이점은 페이지를 이동하는 것이기 때문에 뒤로가기 버튼을 누르면 이전 페이지로 돌아갈 수 있습니다.

    location.replace는 페이지를 새로운 페이지로 대체하기 때문에 이전 페이지 이동이 불가능합니다.

     

    3. 301 redirect (웹 표준 준수) 

    301 리다이렉트만 웹 표준을 준수하는 방법입니다. 아무래도 301를 한 번 만나봐야 겠습니다.

     

     

     

     

    301 리다이렉트(redirect)

     

    .htaccess

    301 리다이렉트 설정은 .htaccess파일을 사용합니다. "hypertext access"의 약자로 앞의 점은 숨김 파일이란 뜻으로 아파치 서버에서만 작동합니다. 이 파일 용도는 디렉토리에 대한 설정 옵션, 허가, 인증, URL, 스팸봇, SSL 등입니다.

     

    >> 단일 페이지 리디렉션

    Redirect 301 / http://newsite.com

     

    혹은

    Redirect permanent / http://newsite.com

     

    >>  전체 사이트 리디렉션

    RewriteEngine On
    RewriteBase "/"
    RewriteCond %{HTTP_HOST} off 또는 !=on
    RewriteRule ^(.*)$ http://newsite.com [R=301,L]

     

    mod_rewrite

    mod_rewrite는 조건 및 규칙을 기반으로 URL을 전환 및 재작성할 수 있도록 도와주는 아파치 확장 모듈입니다. 기존 URL에서 새로운 URL로의 이동을 하는데 활용이 가능한 모듈이죠. mod_rewrite 모듈의 지시자를 살펴보겠습니다.

     

    >> RewriteEngine On|Off : mod_rewrite의 사용여부를 지정합니다.

    >> RewriteBase URL-path : rewrite를 위한 기본 URL을 설정하는 지시자입니다.

    >> RewriteCond TestString CondPattern : RewriteRule 지시자 앞에 사용되는 rewrite 조건을 명시해주는 지시자입니다.

    • TestString : %{HTTPS} 
    • CondPattern : on/off 설정을 이용해 프로토콜별로 처리할 수 있습니다.
      •  != on  은 SSL, TLS를 사용중이고 HTTPS로 접속된 경우이고,
      •  off  의 의미는 HTTP로 접속된 경우입니다.

    >> RewriteRule Pattern Substitution [flags] : mod_rewrite의 핵심 지시자입니다. RewriteCond의 조건을 판별하고 동작합니다.

    • Pattern : Input URL에서 치환할 패턴을 지정합니다.
      •  ^  : 문자열의 첫문자를 지정
      •  .  은 임의의 한글자를 의미
      •  *  은 직전 문자가 0번 또는 그 이상 반복되는 것을 의미
      •  $  : 문자열의 끝문자를 지정
    • Substitution : Pattern을 치환할 대체 문자를 지정합니다.
    • flags : 어떤 동작을 취할지 지정합니다. R은 HTTP 코드를 넘겨주고, L은 RewriteRulu의 끝을 나타냅니다. R=301이 빠지면 302 리다이렉트로 감지합니다. (301은 영구, 302는 일시적인 이동)
    301redirect
    ;

     

    관련포스트
    도메인 | 네임 서버와 포워딩, 리다이렉트 그리고 SSL
    네이버 서치 어드바이저 | 도메인 변경 방법
    웹호스팅 | 아이네임즈 대표도메인 변경과 도메인 관리
    반응형

    댓글