해피정

[CentOS 6.8] Apache 2.2.x 에서 http URL을 https 로 자동 변경

방법1. mod_rewrite

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

 # vi /etc/httpd/conf/httpd.conf
...
<VirtualHost *:80>
   DocumentRoot /home/happyjung/public_html
   ServerName happyjung.com
   ServerAlias www.happyjung.com
   <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteLog logs/rewrite_log
        RewriteCond %{HTTPS} off
        RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
   </IfModule>
</VirtualHost>



방법2. mod_redirect

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

# vi /etc/httpd/conf/httpd.conf
...
<VirtualHost *:80>
   DocumentRoot /home/happyjung/public_html
   ServerName happyjung.com
   ServerAlias www.happyjung.com
   <Location />
        RedirectMatch /(.*)$ https://www.happyjung.com/$1
   </Location>
</VirtualHost>



참고자료
http://taesachi.com/?p=6 
http://www.mimul.com/pebble/default/2010/07/19/1279542240000.html  

|

댓글 3개

감사합니다. 서버도 들여다 봐야 하여 어제부터는 쳐다보고 있었는데요.
저에게는 너무 귀한 팁(Tip)입니다. 기억도 하나 안 나고
아무것도 모르겠더라고요. ㅡㅡ 열심히 배우겠습니다! 고맙습니다.
@소지구 감사합니다. 저도 필요해서 찾고 정리하고 흔적을 남깁니다. 나중에 기억이 안날수 있으니까요^^
@해피정 정말 기억 하나도 안 나요. ㅎㅎ
진짜 필요합니다. 사실 정보는 굳이 외워야 하나? 싶어요.
잘 정리하여 빠르게 찾기가 더 낫지 않을까?
이보다는 본질에 가까운 고민을 해야 하는 것 아닌가? 싶죠.
그런 의미에서 저도 죽어라 저장하겠습니다. ^^ 감사합니다!
댓글을 작성하시려면 로그인이 필요합니다. 로그인

서버관리자

서버관리자 모임 게시판 입니다.

+
제목 글쓴이 날짜 조회
8년 전 조회 3,174
8년 전 조회 1,510
8년 전 조회 4,344
8년 전 조회 1,942
8년 전 조회 3,936
8년 전 조회 2,295
8년 전 조회 2,803
8년 전 조회 2,246
8년 전 조회 2,517
8년 전 조회 2,061
8년 전 조회 2,112
8년 전 조회 2,209
8년 전 조회 1,404
8년 전 조회 1,178
8년 전 조회 3,704
8년 전 조회 2,314
8년 전 조회 3,025
8년 전 조회 3,060
8년 전 조회 1.1만
8년 전 조회 3,412
8년 전 조회 1,592
8년 전 조회 2,775
8년 전 조회 4,246
8년 전 조회 2,336
8년 전 조회 2,319
8년 전 조회 2,181
8년 전 조회 2,500
8년 전 조회 3,209
8년 전 조회 1,325
8년 전 조회 2,314
🐛 버그신고