httpd.conf 또는 httpd-ssl.conf 파일에서
<Directory "/apache/apache24/htdocs"> 또는 <VirtualHost *:443> 밑에 추가한다
(위 경로는 적용하고 싶은 웹소스가 있는 경로이다)
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(DELETE|TRACE|OPTIONS|PATCH|HEAD)$
RewriteRule .* - [F]
* RewirteEngine on : Rewirte Engine 을 켠다
* RewirteCond : RewriteCond에서 설정한 패턴과 일치하는 경우에 다음에 오는 RewriteRule들을 실행한다.
해당 내용은 REQUEST METHOD 가 DELETE|TRACE|OPTIONS|PATCH|HEAD일 경우 다음 룰을 적용한다.
* RewirteRule : 적용할 룰, 여기서는 해당 메소드는 403 forbidden 시켰다
문법: RewriteRule (Pattern) (Substitution) [flag]
* 사용가능한 서버변수
HTTP Headers connection & request server internals date & time specials
HTTP_USER_AGENT
HTTP_REFERER
HTTP_COOKIE
HTTP_FORWARDED
HTTP_HOST : 요청된 URL 전체
HTTP_PROXY_CONNECTION
HTTP_ACCEPT REMOTE_ADDR
REMOTE_HOST
REMOTE_PORT
REMOTE_USER
REMOTE_IDENT
REMOTE_METHOD
SCRIPT_FILENAME
PATH_INFO
QUERY_STRING
AUTH_TYPE DOCUMENT_ROOT
SERVER_ADMIN
SERVER_NAME
SERVER_ADDR
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
TIME API_VERSION
THE_REQUEST
REQUEST_URI : 요청된 URL중 도메인을 뺀 부분
REQUEST_FILENAME
IS_SUBREQ
HTTPS
* 플래그(flag) [참고 : http://httpd.apache.org/docs/current/rewrite/flags.html ]
F | forbidden 요청페이지를 403 에러 페이지로 redirect 시킴
G | gone 요청페이지를 410 에러 페이지로 redirect 시킴
L | last 다음의 Rule을 무시하고 종료
C | chain 결과를 다음 Rule의 input값으로 넘김
N 새로운 Rule이 시작
R 무조건 Redirection 시킴
NC 대소문자를 구별하지 않음
OR OR
QSA Cond의 내용을 지난결과에 덧붙임
NE 출력문자에 특수문자가 HexCode가 있는경우
PT | passthrough : 강제적으로 결과 URI를 기존의 입력된 URL의 URI로 사용한다. 마치 Alias 나 Redirect 처럼 사용된다.
예)
Alias /icons /usr/local/apache/icons
RewriteRule /pics/(.+)\.jpg /icons/$1.gif [PT]
PT 플래그의 생략하면 Alias가 무시되어진다. 그 결과 'File not found' 라는 에러가 뿌려지게 된다.
PT 플래그는 L플러그를 의미한다: Rewriting 은 다음 프로세싱 단계로 넘어가기 위해 정지 된다.
PT 플래그는 <Directory>섹션 혹은 .htaccess 파일에서 동작한다.
$1,$2 ... RewriteCond 나 RewriteRule 에 string 값으로 (.*) 같은 변형 될수 있는 값들을 지정했을때 사용자로 부터 입력된 값이 $1 , $2 ... 이런식으로 변수가 된다.
'Front-end > Web' 카테고리의 다른 글
CSS Combinator Selectors (0) | 2022.07.12 |
---|---|
Github page deploy Error 모음 (0) | 2022.05.18 |
[React] useEffect, useRef (0) | 2021.07.13 |
SOP란? (0) | 2021.01.21 |
브라우저 동작 원리(2) 렌더링 엔진 - 웹킷(Webkit), 블링크(Blink), Reflow, Repaint (0) | 2019.03.25 |