Apache mod_rewrite 사용법 (작성중 - 수정부분이나 잘못된 곳 있으면 지적해주세요)
mod_rewrite (Rewrite engine) 는 전달 받은 URL 을 재 작성 을 하거나 URL을 최적화 할때 사용하는 모듈입니다.
예들 들어서
원 주소 : http://www.example.com/Blogs/Posts.php?Year=2006&Month=12&Day=10
적용 주소 : http://www.example.com/Blogs/2006/12/10/
위와 같은 모습으로 URL을 간단히 처리 할 수 있습니다.
위 예제를 설정하는 룰은 아래와 같습니다.
(실제 동작은 테스트 하지 않음 : 이해를 돕기 위한 구문임)
RewriteCond %{REQUEST_URI}
RewriteRule /Blogs/([0-9]+)/([0-9]+)/([0-9]+)$
http://www.example.com/Blogs/Posts.php?Year=$1&Month=$2&Day=$3
위와 같이 설정을 할 수 있습니다.
이제 rewrite 의 설정 및 각 문법에 대해서 알아 보겠습니다.
- RewriteBase
- RewriteCond
- RewriteEngine
- RewriteLock
- RewriteLog
- RewriteLogLevel
- RewriteMap
- RewriteOptions
- RewriteRule
1. RewriteBase (Rewrite 에 사용될 기본 URL 디렉토리를 설정)
사용법 : RewriteBase /Example
적용할수 있는 곳 : Directory, .htaccess
2. RewriteCond (URL 의 재작성할 부분을 선언하거나 지정한다.)
사용법 : RewriteCond [검사할 문자열] [패턴]
적용할 수 있는 곳 : Server Config, Virtual Host, Directory, .htaccess
사용할 수 있는 서버 변수
HTTP Headers... 보기
connection & request 보기
server internals 보기
date and time 보기
specials 보기
플래그 (작성중..)
C
CO
F
G
L
N
NC
NE
[P] 재작성한 외부 페이지(웹사이트) 를 재작성 이름으로 대응한다.
PT
QSA
[R] 브라우저에게 변경 사실을 통보한다. (주소창이 변한다)
S
T
사용 예시
Rewrite ^/TestDir/(.*)$ /Web/Test/$1 [L] 은
http://example.com/TestDir/ 으로 들어오면 http://example.com/Web/Test/ 로 처리한다.
Rewrite %{HTTP_USER_AGENT} ^Mozilla.*
RewriteRule ^/$ /browser/mozilla.html [L] 는
브라우저 UserAgent 에 Mozilla 가 포함되어 잇으면 /browser/mozilla.html 으로 처리한다.
3. RewriteEngine
사용법 : RewriteEngine on|off
기본 : RewriteEngine off
적용할 수 있는 곳 : Server Config, Virtual Host, Directory, .htaccess
설명 : Rewrite 엔진을 사용하는 여부를 설정한다.
4. RewriteLog
사용법 : RewriteLog [파일패스]
적용할 수 있는 곳 : server conf, virtual host
예 : RewriteLog "/usr/local/apache/log/rewritelog.log"
설명 : Rewrite 동작에 대한 로그를 남긴다.
5. RewriteLogLevel
사용법 : RewriteLogLevel [Level]
예 RewriteLogLevel 0
적용할 수 있는 곳 : Server Conf, Virtual Host
설명 : RewirteLog 를 이용하여 기록할 로그 레벨을 지정한다.
6. RewriteMap
7. RewriteOptions
8. RewriteRule
"Linux" 카테고리의 다른 글
- Apache + PHP + MySQL 연동 하기 1# (댓글 6개 / 트랙백 0개) 2009/03/01
- VMWare Server 설치 (댓글 0개 / 트랙백 0개) 2010/02/19
- CentOS 설치(리눅스 설치하기) -2- (댓글 4개 / 트랙백 0개) 2009/02/28
- CentOS 설치(리눅스 설치하기) -1- (댓글 4개 / 트랙백 0개) 2009/02/28
- 보안 서버 SSL / TLS 무료 인증서 (댓글 0개 / 트랙백 1개) 2010/05/26
- 시스템에 사용하던 Apache, PHP, MySQL 을 마이그레이션 후기 (댓글 0개 / 트랙백 0개) 2009/11/04
- CentOS 5.5 에서 VMware Server 2.0.2 hostd 문제 해결 (댓글 0개 / 트랙백 0개) 2010/08/30
- VMWare Server 가상 머신 만들기 (댓글 0개 / 트랙백 0개) 2010/02/19
- Apache + PHP + MySQL 연동 하기 3# (댓글 2개 / 트랙백 0개) 2009/03/01
- Apache mod_evasive (댓글 0개 / 트랙백 0개) 2009/06/19
