크게는 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: apache, https, mod_redirect, mod_rewrite, ssl
“apache 에서 모든 URL을 강제로 https 로 변경하는 방법”에 대한 3개의 생각
핑백: letsencrypt - 무료 SSL 인증서 설치 - 코르니유의 비밀
댓글감사!
너무 감솨 감솨!!!!