강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

Apache 에서 redirection 사용하기

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

도메인 Redirection 하기

여러개의 도메인을 가지고 있는데 한가지 도메인으로 출력되게 하기위해 우리는 도메인 Redirection을 한다.

redirection 하는 방법은 rewrite 모듈과 redirection 을 이용하는 두가지가 있다.

여기서 설명되는 도메인들에 대해 사전 설명을 하자면

linux.co.kr    www.linux.co.kr     linux.kr     www.linux.kr

이렇게 이용한다고 하자. 웹에서 각 도메인을 입력했을때 www.linux.kr 으로 출력되게 해보자

httpd.conf 파일의 내용중에 도메인의 설정이 있을 것이다.

여기서 각 방법에 대해 적어보면

- Rewrite 모듈을 이용하는 방법

<VirtualHost *:80>
    DocumentRoot /home/linux
    ServerName linux.kr
    ServerAlias www.linux.kr
    ServerAlias linux.co.kr
    ServerAlias www.linux.co.kr
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(linux\.kr|www\.linux\.co\.kr|linux\.co\.kr)
    RewriteRule   (.*) http://www.linux.kr$1 [R,L]
</VirtualHost>

- Redirect 를 이용하는 방법

<VirtualHost *:80>
        ServerName      www.linux.kr
        DocumentRoot    /home/linux
</VirtualHost>
<VirtualHost *:80>
    ServerName linux.kr
    Redirect / http://www.linux.kr
</VirtualHost>
<VirtualHost *:80>
    ServerName linux.co.kr
    Redirect / http://www.linux.kr
</VirtualHost>
<VirtualHost *:80>
    ServerName www.linux.co.kr
    Redirect / http://www.linux.kr
</VirtualHost>

Rewrite 모듈을 이용하기 위해 필요한 것들에 대해서 알아보자.

Rewrite 를 적용할 수 있는 범위 - 서버 전체에 설정할 수도 있고 특정 호스트에만 적용할 수도 있다.

Rewrite 모듈 지시자

RewriteEngine On / Off
Rewrite 엔진을 사용할지 여부를 설정한다. default는 off이다.
현재 Apache에서 실행중인 모든 RewriteRule을 비활성화 시킬때 RewriteRule 라인의 주석처리보다 RewriteEngin Off 로 해야 한다.

RewriteLog FILE-PATH
RewriteLog 지시자는 Rewrite 엔진의 로그를 기록할 파일을 지정한다.

RewriteLogLevel Level
RewriteLog 지시자로 설정한 로그파일에 기록할 로그들에 대해 얼마나 자세한 내용을 로그에 남길 것인가에 대해 설정하는 지시자이다.
Level 은 0~9까지 사용할 수 있으며 0은 기록하지 않겠다는 의미이다. 숫자가 높을 수록 자세한 로그를 기록한다.

RewriteCond TestString CondPattern
RewriteRule 과 함께 사용되는 규칙으로 RewriteCond 다음에 오는 RewriteRule은 RewriteCond 에서 설정한 패턴과 일치해야지만 RewriteRule을 실행한다.

RewriteRule Pattern Substitution
Rewrite 모듈의 실질적인 Rewrite 규칙들을 적용하는 지시자이다.
Pattern(input URL)을 Subtitution(Return URL)로 변경하기 위한 모든 규칙들은 이 지시자를 사용해서 설정해야 한다.
Pattern에는 Perl 정규표현식을 사용할 수 있기 때문에 Pattern의 규칙을 폭넓게 적용 가능하다.

기본 정규표현식
. : 다수의 한문자
? : 0개 이상의 한문자
* : 0개 이상의 문자열
+ : 1개 이상의 문자열
(chars) : (, ) 안의 문자 또는 문자열을 그룹으로 묶는다. 이 문자그룹은 Substitution에서 $N의 변수로 활용할 수 있다.
^ : 문자열의 첫부분을 지정
$ : 문자열의 끝을 지정
\ : 정규표현식에서 특별한 의미로 사용되는 문자의 특수기능을 제거
{n} : 정확히 n번 반복
{n,} : n번 이상 반복
{n,m} : n이상 m 이하 반복
[chars] : 문자들의 범위 또는 표현할 수 있는 문자들을 설정

정규표현식 단축표현들
[:alpha:] : 알파벳과 같은 표현, [a-zA-Z]
[:alnum:] : 알파벳과 숫자, [a-zA-Z0-9]
[:digit:] : 숫자, [0-9]
[:upper:] ㅣ 알파벳 대문자 [A-Z]

으로 간단하게 알아보았다.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,016 명
  • 현재 강좌수 :  35,689 개
  • 현재 접속자 :  272 명