메뉴

apache 에서 모든 URL을 강제로 https 로 변경하는 방법

2012년 8월 7일 - Linux

크게는 mod_redirect와 mod_rewrite
두가지를 이용해서 할 수 있습니다.

– mod_redirect

<VirtualHost *:80>
   DocumentRoot /home/www
   ServerName gabia.com
   ServerAlias www.gabia.com
   <Location />
        RedirectMatch /(.*)$ https://www.gabia.com/$1
   </Location>
</VirtualHost>

gabia.com 으로 들어왔을때 Location이 / (root) 일 경우
match 되는 모든것들을 $1 변수를 이용하여 redirect 시키는 방법 입니다.

– mod_rewrite

<VirtualHost *:80>
   DocumentRoot /home/www
   ServerName gabia.com
   ServerAlias www.gabia.com
   <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
   </IfModule>
</VirtualHost>

gabia.com 으로 들어왔을때 mod_rewrite 가 모듈에 올라가 있고 HTTPS로 요청한것이 아니라면 강제로 redirect 시키는 방법입니다.
[R,L] 에서 R은 강제로 redirect 시킨다는 뜻 입니다. http status code에 의해 분기할 수 있습니다.
L은 마지막 RewriteRule 이라는 뜻 입니다. 이후의 RewriteRule은 모두 무시됩니다.
만약 해당 설정 아래에 또다른 RewriteRule이 필요하다면 L를 빼면 됩니다.

Tags: , , , ,

댓글감사!