Server/Web
Apache에서 HTTP > HTTPS Redirect 하는 방법
호형
2020. 7. 2. 11:05
SSL을 설치를 해도 거의 대부분의 사람들은 URL을 통한 접근을 할 때 HTTP protocol로 입력을 하고 들어온다. 그렇다고 사용자들보고 꼭 우리 사이트는 HTTPS protocol을 사용하니 https://xxxx.xxxx 이렇게 들어오라고 할수는 없다. 이럴때 사용을 하는것이 HTTPS redirection이다. HTTP로 들어온 요청을 HTTPS로 바꿔주는것이다. 웹서버를 Apache를 사용하고 있다고 가정하고 위의 작업을 진행해 보자.
모든 요청을 HTTP>HTTPS 로 Redirect 하기
httpd.conf
<VirtualHost *:80>
ServerName oingdaddy.sample.com
DocumentRoot /app/deploy/webstatics/sample/WebContent
.....
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</VirtualHost>
[R,L] 은 무엇인가? R은 강제 Redirect, L은 Last RewriteRule 이라고 이해하면 된다.
특정 요청일때만 HTTP>HTTPS 로 Redirect 하기
httpd.conf
<VirtualHost *:80>
ServerName oingdaddy.sample.com
DocumentRoot /app/deploy/webstatics/sample/WebContent
.....
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^/login(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</VirtualHost>
/login 으로 들어오는 요청에 대해서만 https로 변경을 하는 방법이다.
끝!