웹사이트 도메인이 변경되었거나 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는 일시적인 이동)
관련포스트 |
도메인 | 네임 서버와 포워딩, 리다이렉트 그리고 SSL |
네이버 서치 어드바이저 | 도메인 변경 방법 |
웹호스팅 | 아이네임즈 대표도메인 변경과 도메인 관리 |
'웹 개발 > 웹사이트' 카테고리의 다른 글
Lighthouse를 이용한 웹, 블로그 성능 측정하기 (69) | 2024.08.23 |
---|---|
웹프레임워크 | 부트스트랩 소개와 시작하기 (103) | 2024.08.09 |
FTP 폴더 권한 변경하는 방법 (파일질라, 명령프롬프트) (22) | 2024.08.07 |
MVC 패턴 구조와 흐름 파악하기 (108) | 2024.08.05 |
웹프레임워크 | PHP 프레임워크 소개와 폴더 구조 (79) | 2024.08.02 |
도메인 | 내 도메인 이메일 주소로 사용하는 방법 (107) | 2024.07.05 |
도메인 | SSL 인증서 종류(DV, OV, EV)와 인증 브랜드 (95) | 2024.06.28 |
웹호스팅 | 아이네임즈 대표도메인 변경과 도메인 관리 (93) | 2024.06.26 |
댓글