- 웹 서버의 리디렉션 및 URL 리라이팅을 수행하는 데 사용
- mod_rewrite 모듈에서 사용
- URL 구조를 변경하거나 요청을 다른 위치로 리다이렉션하는 등의 작업을 수행
RewriteEngine On
RewriteRule ^old-page$ /new-page [R=301,L]RewriteEngine On RewriteRule ^/atest /index2.jsp [L,R]
RewriteEngine On
RewriteRule ^page-with-query$ /page-without-query? [R=301,L]
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/maintenance$
RewriteRule ^.*$ /maintenance [R=503,L]
http://ABC.co.kr/Qrcode?equipcode=5AB010001 주소를
http://ABC.co.kr/ABC/ABC.do?I_MATNO=&I_INDMATNO=5AB010001 주소로 연결
→ URL 뒷자리 “5AB010001” 부분은 계속 바뀜.RewriteEngine On RewriteCond %{QUERY_STRING} equipcode=(.*) ## equipcode 코드는 URL에 equipcode뒤에 숫자 붙이는 뜻 RewriteRule ^/Qrcode /ABC/ABC.do?I_MATNO=&I_INDMATNO=%1 [L,R] # https 리다이렉션 설정 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R,L]
설정 구성 요소 설명
- RewriteEngine On:
RewriteEngine On 지시어는 Apache의 mod_rewrite 모듈을 활성화합니다. 이 모듈은 URL 재작성 기능을 제공합니다.
- RewriteCond %{HTTPS} off:
RewriteCond는 재작성 규칙을 적용할 조건을 정의합니다.
%{HTTPS}는 현재 요청이 HTTPS를 사용하는지 여부를 나타냅니다.
off는 요청이 HTTP로 이루어지고 있음을 의미합니다. 따라서, 이 조건은 HTTP 요청에 대해서만 참이 됩니다.
- RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R,L]:
RewriteRule은 실제로 URL 재작성을 수행하는 규칙을 정의합니다.
^(.)$: ^는 URL의 시작을 의미합니다.
(.)는 모든 문자를 의미하며, 캡처 그룹으로 설정되어 URL의 나머지 부분을 캡처합니다.
$는 URL의 끝을 의미합니다.
- https://%{HTTP_HOST}$1:
https://는 HTTPS 프로토콜을 의미합니다.
%{HTTP_HOST}는 현재 요청의 호스트 이름(도메인)을 나타냅니다.
$1는 캡처 그룹 (.*)에 해당하는 URL의 나머지 부분을 참조합니다.
- [R,L]:
R은 리디렉션을 의미합니다. 기본적으로 302(임시) 리디렉션을 수행합니다.
L은 마지막(last) 규칙을 의미합니다. 이 규칙이 적용되면, 더 이상 다른 재작성 규칙을 적용하지 않습니다.
이 설정은 HTTP로 들어오는 모든 요청을 자동으로 HTTPS로 리디렉션합니다. 예를 들어:
사용자가 http://example.com/page에 접속하면:
RewriteEngine On으로 mod_rewrite가 활성화됩니다.
RewriteCond %{HTTPS} off 조건이 참이 되어, HTTP 요청이 감지됩니다.
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R,L] 규칙이 적용되어, http://example.com/page가 https://example.com/page로 리디렉션됩니다.
http -> https rewrite 설정
RewriteEngine On RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R,L]