블로그 이미지
괴스트

예진이와 고고씽!!

Rss feed Tistory
Dev/php 2010/03/05 09:43

mod_rewrite 사용하기

크리에이티브 커먼즈 라이선스
Creative Commons License
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} /Blogs/([0-9]+)/([0-9]+)/([0-9]+)$
RewriteRule . http://www.example.com/Blogs/Posts.php?Year=$1&Month=$2&Day=$3


위 와 같이 설정을 할 수 있습니다.

이제 rewrite 의 설정 및 각 문법에 대해서 알아 보겠습니다.
  1. RewriteBase
  2. RewriteCond
  3. RewriteEngine
  4. RewriteLock
  5. RewriteLog
  6. RewriteLogLevel
  7. RewriteMap
  8. RewriteOptions
  9. RewriteRule

1. RewriteBase (Rewrite 에 사용될 기본 URL 디렉토리를 설정)
사용법 : RewriteBase /Example
적용할수 있는 곳 :  Directory, .htaccess

2. RewriteCond (URL 의 재작성할 부분을 선언하거나 지정한다.)
사용법 : RewriteCond [검사할 문자열] [패턴]
적용할 수 있는 곳 : Server Config, Virtual Host,  Directory, .htaccess

사용할 수 있는 서버 변수

HTTP Headers... 닫기

HTTP_USER_AGENT
HTTP_REFERER
HTTP_COOKIE
HTTP_FORWARDED
HTTP_HOST
HTTP_PROXY_CONNECTION
HTTP_ACCEPT

HTTP Headers... 닫기

connection & request 닫기

REMOTE_ADDR
REMOTE_HOST
REMOTE_PORT
REMOTE_USER
REMOTE_IDENT
REQUEST_METHOD
SCRIPT_FILENAME
PATH_INFO
QUERY_STRING
AUTH_TYPE

connection & request 닫기

server internals: 닫기

DOCUMENT_ROOT
SERVER_ADMIN
SERVER_NAME
SERVER_ADDR
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE

server internals: 닫기

date and time 닫기

TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
TIME

date and time 닫기

specials 닫기

API_VERSION
THE_REQUEST
REQUEST_URI
REQUEST_FILENAME
IS_SUBREQ
HTTPS

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
저작자 표시
TOTAL 114,290 TODAY 48