Apache Module mod_rewrite 사용하기(작성중-나중에 확인할것!) PHP / Programing
2009/09/16 11:18 http://blog.naver.com/popejoa/40089773872 |
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 의 설정 및 각 문법에 대해서 알아 보겠습니다.
- 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... 닫기
HTTP_USER_AGENT
HTTP_REFERER
HTTP_COOKIE
HTTP_FORWARDED
HTTP_HOST
HTTP_PROXY_CONNECTION
HTTP_ACCEPT
HTTP_REFERER
HTTP_COOKIE
HTTP_FORWARDED
HTTP_HOST
HTTP_PROXY_CONNECTION
HTTP_ACCEPT
connection & request 닫기
REMOTE_ADDR
REMOTE_HOST
REMOTE_PORT
REMOTE_USER
REMOTE_IDENT
REQUEST_METHOD
SCRIPT_FILENAME
PATH_INFO
QUERY_STRING
AUTH_TYPE
REMOTE_HOST
REMOTE_PORT
REMOTE_USER
REMOTE_IDENT
REQUEST_METHOD
SCRIPT_FILENAME
PATH_INFO
QUERY_STRING
AUTH_TYPE
server internals: 닫기
DOCUMENT_ROOT
SERVER_ADMIN
SERVER_NAME
SERVER_ADDR
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
SERVER_ADMIN
SERVER_NAME
SERVER_ADDR
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
date and time 닫기
TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
TIME
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
TIME
specials 닫기
API_VERSION
THE_REQUEST
REQUEST_URI
REQUEST_FILENAME
IS_SUBREQ
HTTPS
THE_REQUEST
REQUEST_URI
REQUEST_FILENAME
IS_SUBREQ
HTTPS
플래그 (작성중..)
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
'php' 카테고리의 다른 글
php 이클립스에서 개발하기 (0) | 2010.01.08 |
---|---|
쿠키헤더관련 에러 cookie Warning: Cannot modify header information - headers already sent by (0) | 2009.12.18 |
Cookie 와 Session (0) | 2009.12.08 |
$_SERVER["HTTP_REFERER"] 란? (0) | 2009.12.08 |
substr_count 함수 (0) | 2009.12.08 |