1. 개요

Apache에서 HTTP/HTTPS 프로토콜 별로 리다이렉트/라라이트 하는 방법.


2. 활용

RewriteCond %{HTTPS} on/off 설정을 이용하여 프로토콜 별로 처리할 수 있다.

Rewrite를 추가하는 부분에서 SSL 인증서를 사용하고 있다면

[P] 옵션을 사용하기 때문에  (P=Proxy)

SSLProxyEngine On 

설정을 추가해줘야 한다.

 

Proxy를 사용하지 않아도 될 경우에는 [P,R,L] -> [R=301,L] 사용

 

- HTTP를 HTTPS로 리다이렉트

   <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [P,R,L]
   </IfModule>

 

- HTTPS를 HTTP로 리다이렉트

   SSLProxyEngine On    => SSL 인증서를 이용하고 있다면 넣어줘야 한다.
   <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTPS} on
        RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [P,R,L]
   </IfModule>
 
- HTTP/HTTPS를 고려하여, 받은 URL 그대로 리다이렉트.
 
   SSLProxyEngine On    => SSL 인증서를 이용하고 있다면 넣어줘야 한다.   
<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTPS} on
        RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [P,R,L]
        RewriteCond %{HTTPS} off
        RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [P,R,L]
   </IfModule>