아파치 서버단에서 URL 리디렉션 설정 방법

APACHE

아파치로 웹서버를 구성한 다음 홈페이지나 블로그등을 운영하다 보면 사이트 개편을 하는 경우가 생기는데 이때 페이지의 구조(카테고리)나 주소를 변경하게 되면 방문자의 대부분이 검색 엔진을 통해 접속하는 웹 특성상 이전에 크롤링 된 주소로 접속을 하기 때문에 방문자는 404 에러 페이지를 보게 됩니다.

주소를 변경하게 되는 경우 방문자 입장에서도 원하는 정보를 얻을 수 없기 때문에 불편하고 사이트 운영자 입장에서도 손님을 놓치는 격이 되기 때문에 변경된 주소를 이어주는 리디렉션(Redirection) 설정이 필요합니다.

리디렉션은 프론트엔드측에서도 자바스크립트를 이용해 구현이 가능하지만 검색 엔진에게 변경된 주소를 알려줄 수 있는 상태 정보, 즉 HTTP status code 301을 반환해 검색엔진에 변경된 정보를 알리는 것이 중요합니다.

301 & 302 Redirect

리디렉션을 설정하기 앞서 개념에 대해 살짝 짚고 넘어가자면, 리디렉션을 나타내는 HTTP 상태 코드는 301 permanent redirect, 302 temporary redirect 로 두가지가 존재합니다.

상태코드 이름에서 알수 있듯이 완전하게 해당 페이지가 이동한 경우 301 코드를 사용하고 임시적으로 페이지 주소를 이동한 경우에는 302 코드를 사용합니다.

사이트 개편 및 구조 개편등으로 인해 주소가 바뀐 경우에는 301, 서버 점검 페이지 같이 일시적으로 해당 페이지를 다른 페이지로 전환해야 하는 경우에는 302 코드를 반환하는 것이 좋습니다.

아파치 리디렉션 설정

<VirtualHost *:80>
ServerName abc.com
ServerAlias www.abc.com
Redirect / http://xyz.com/
</VirtualHost>

첫번째 방법으로는 가상호스트에서 Redirect를 이용하는 방법입니다.

아파치 가상호스트 설정 파일을 편집기로 열어 가상호스트(VirtualHost) 블럭에 위와 같은 문법으로 리디렉션을 설정할 수 있습니다.

예제는 abc.com이나 www.abc.com 으로 접속한 사용자는 xyz.com 도메인으로 이동되게 됩니다. 만일 SSL이 적용된 사이트로 개편한다면 http 프로토콜에서 https 프로토콜로 리디렉트 하면 되겠죠?

<VirtualHost *:80>
RewriteEngine On
RewriteRule (.*) http://www.abc.net/$1  [R=301,L]
</VirtualHost>

두번째 방법으로 가상호스트에서 rewrite 모듈을 이용해 리디렉션 하는 방법입니다.

워드프레스, XE, 그누보드등의 CMS에서 rewrite 모듈을 이용해 주소를 깔끔하게 정리하는데(짧은 주소) 이와 같은 원리로 rewrite 모듈을 사용해 리디렉션을 설정하는 경우 정규표현식을 이용해 좀더 세밀한 리디렉션 구현이 가능합니다.

.htaccess로 Redirection 설정

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(abc.com)
RewriteRule (.*)  http://www.abc.com/$1  [L]

만일 관리자가 아닐 경우 직접 가상 호스트 설정을 수정할 수 없기 때문에 루트 디렉토리에 .htaccess 파일을 만들고 위와 같은 요령으로 설정해 리디렉션 설정을 할 수 있습니다. 위 예시는 2차 도메인 주소 www 가 붙지 않은 abc.com으로 접속했을때 www.abc.com으로 리디렉션 하는 문법입니다.

답글 남기기

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

Fill out this field
Fill out this field
유효한 이메일 주소를 입력해주세요.

apache2 logo
우분투 아파치 속도를 빠르게 mod_deflate gzip 압축
아파치 웹서버 데몬은 gzip을 이용해 문서를 압축하고 클라이언트에게 전송하는 것을 지원합니다. 압축되는 문서는 html,CSS,javascript등 웹사이트를 구성하는 대부분의 문서로 문서 하나로 비교하면…