Apache HTTP Server

Apache HTTPS/HTTP 리다이렉트(Redirect/Rewrite) 하는 방법.

혀뇽뇽이·2018년 2월 19일·조회 49,676

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>
   

댓글 2

로그인 후 댓글을 남길 수 있습니다.

  • ScandinaviaScandinavia· 2018년 2월 20일
    808베이스님 감사합니다
  • 고구마엔사이다· 2019년 8월 20일
    R : 뒷단에서 리라이트하는 것이 아니라 사용자(브라우저)가 하도록 함. 기본 302이며 [R=301]로도 설정 가능함. L : 해당 조건 블럭의 끝을 의미.