맨날 Apache 가상호스트 설정하면서 rewrite 조건이 헷갈려가지고 참고용으로 정리했다.
- RewriteCond 지시자는 RewriteRule 과 함께 사용된다.
- RewriteCond 다음에 오는 RewriteRule은 RewriteCond 에서 설정한 패턴과 일치해야지만 RewriteRule들을 실행한다.
Rule
- [L] : 정의된 최종행 이 행 이후의 RewriteRule은 무시
- [R] : 리다이렉트 실행
- [F] : 403에러로 redirect
- [G] : 410에러로 redirect
- [P] : proxy request로 보냄
- [N] : 새로운 룰 시작
- [R] : 무조건 redirect
- [PT] : Input URL을 그대로 유지하며 Return URL을 실행한다.
- [NC] : 대소문자를 구별하지 않음
- [OR] : OR
Regular Expression
- . : 다수의 한문자
- ? : 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] 와 같은 표현
Usable Server Variable ($_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가 존재하는가?
Ref. https://www.cikorea.net/bbs/view/tip?idx=8296%EF%BB%BF
'프로그래밍 > 네트워크' 카테고리의 다른 글
[K8S] Jaeger 설치 (jaeger-operator) (0) | 2022.06.08 |
---|---|
[K8S] Jaeger 설치 (jaeger-kubernetes) (0) | 2022.05.26 |
[Network] 인터넷 속도 단위 (0) | 2016.03.27 |
[Network] Torrent Magnet URI 구조 (0) | 2016.03.27 |
[Apache] 폴더(디렉토리) 목록 출력 방지 (0) | 2016.03.27 |