TIP게시판

제목 mod_rewrite 간략 정리본
글쓴이 한대승(불의회상) 작성시각 2014/10/07 20:00:52
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 12647   RSS
한대승(불의회상)
index.php 죽이기에 나와 있는 .htaccess의 내용들을 보다 보면 의미가 불분명해 긴가민가 하는 부분들이 있어서 간략하게 정리해 봅니다.


- RewriteCond 지시자는 RewriteRule 과 함께 사용된다.
- RewriteCond 다음에 오는 RewriteRule은 RewrieteCond 에서 설정한 패턴과 일치해야지만 RewriteRule들을 실행한다.

- 룰
[L] : 정의된 최종행 이 행 이후의 RewriteRule은 무시
[R] : 리다이렉트 실행
[F] : 403에러로 redirect
[G] : 410에러로 redirect
[P] : proxy request로 보냄
[N] : 새로운 룰 시작
[R] : 무조건 redirect
[PT] : Input URL을 그대로 유지하며 Return URL을 실행한다.
[NC] : 대소문자를 구별하지 않음
[OR] : OR


- 정규표현식
 
. : 다수의 한문자
? : 0개 이상의 한문자
* : 0개 이상의 문자 또는 문자열
+ : 1개 이상의 문자 또는 문자열
^ : 문자열의 첫문(열)을 지정합니다.
$ : 문자열의 끝 문자(열)을 지정합니다.
(역슬래쉬) : 정규표현식에서 특별한 의미로 사용되는 문자의 특수기능을 제거합니다.(예:(, ), [, ] . 등)
{n} : 정확히 n번 반복
{n,} : n번 이상 반복
{n,m} : n 이상 m 이하 반복
x|y : x또는 y를 찾습니다.
[chars] : 문자들의 범위 또는 표현할 수 있는 문자들을 설정합니다.
예) [a-z] : a 부터 z 까지의 소문자, [tT] : 소문자 t 또는 대문자 T

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

- 사용 가능한 서버변수 (PHP의 $_SERVER 변수와 의미가 같습니다.)
%{HTTP_USER_AGENT}
%{HTTP_REFERER}
%{HTTP_COOKIE}
%{HTTP_FORWARDED}
%{HTTP_HOST}
%{HTTP_PROXY_CONNECTION}
%{HTTP_ACCEPT}
%{DOCUMENT_ROOT}
%{SERVER_ADMIN}
%{SERVER_NAME}
%{SERVER_ADDR}
%{SERVER_PORT}
%{SERVER_PROTOCOL}
%{SERVER_SOFTWARE}
%{REMOTE_ADDR}
%{REMOTE_HOST}
%{REMOTE_USER}
%{REMOTE_IDENT}
%{REQUEST_METHOD}
%{SCRIPT_FILENAME}
%{PATH_INFO}
%{QUERY_STRING}
%{AUTH_TYPE}
%{TIME_YEAR}
%{TIME_MON}
%{TIME_DAY}
%{TIME_HOUR}
%{TIME_MIN}
%{TIME_SEC}
%{TIME_WDAY}
%{TIME}
- 판정
-f : REQUEST_FILENAME 이 나타내는 regular file 이 존재하는가?
-d : REQUEST_FILENAME 이 나타내는 directory가 존재하는가?
 다음글 CI 2.2.0 PDO 드라이버 버그 있습니다. (6)
 이전글 네이버 로그인 이용하기 (5)

댓글

들국화 / 2014/10/08 09:52:48 / 추천 0
좋은정보 감사합니다.
정규식중 빠진게 있는데 그중 중요한게 | 인것 같네요.
x|y x또는 y를 찾습니다.

룰중에는 %{HTTP_HOST}, %{QUERY_STRING}, %{HTTP_USER_AGENT}, %{HTTP_COOKIE} 등도 사용 가능 합니다. 
한대승(불의회상) / 2014/10/08 10:35:42 / 추천 0
들국화// 좋은 지적 감사 내친김에 몇가지 더 추가 했습니다.
들국화 / 2014/10/08 10:50:28 / 추천 0
불상// 지적질 한건 아닌데요.. 퍼펙트 한데요. ^^
한대승(불의회상) / 2014/10/08 12:35:35 / 추천 0
들국화// ㅎㅎㅎ 감사 합니다. ^^