새로운 작업을 할 때마다 .htaccess를 써넣어줘야 하는데, 매번 같은 작업을 검색해서 사용하는 바람에, 쓸데없는 시간이 걸려버린다.
그래서 개인적인 기록용으로!!
이번 내용은 폼이 들어간 문의페이지만을 SSL화 하기 위한 내용인데, mod_rewrite를 써서 HTTP와 HTTPS를 자유롭게 왔다 갔다 할 수 있도록 한다. 이 내용 저 내용으로 시행착오를 거쳐 최종적으로 선택된 녀석을 기록해두겠음.
혹시 사용하실 분들이 계시면 그냥 복사해서 자기 환경에 맞게 쓰시면 되겠다.
mod_rewrite은 Apache의 기능이므로 다른 환경에서는 이용 불가능.
RewriteEngine을 사용할 때는 먼저, RewriteEngine on를 첫 줄에 써준 후 RewriteRule을 써내려 감.
그래서 개인적인 기록용으로!!
이번 내용은 폼이 들어간 문의페이지만을 SSL화 하기 위한 내용인데, mod_rewrite를 써서 HTTP와 HTTPS를 자유롭게 왔다 갔다 할 수 있도록 한다. 이 내용 저 내용으로 시행착오를 거쳐 최종적으로 선택된 녀석을 기록해두겠음.
혹시 사용하실 분들이 계시면 그냥 복사해서 자기 환경에 맞게 쓰시면 되겠다.
mod_rewrite은 Apache의 기능이므로 다른 환경에서는 이용 불가능.
RewriteEngine을 사용할 때는 먼저, RewriteEngine on를 첫 줄에 써준 후 RewriteRule을 써내려 감.
.htaccess 기입방법
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # HTTP로 접속 된 경우, RewriteCond %{HTTPS} off # 아래의 URL은 항상 https로 리다이렉트 RewriteCond %{HTTP_HOST} www.example.com RewriteCond %{REQUEST_URI} ^/admin/.*$ [OR] RewriteCond %{REQUEST_URI} ^/inquiry/.*$ # 단 아래를 제외하고. RewriteCond %{REQUEST_URI} !^/assets/.*$ RewriteCond %{REQUEST_URI} !^.*\.(js|css|gif|jpg|png|ico|php)$ # https로 리다이렉트 RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] # HTTPS로 접속 된 경우, RewriteCond %{HTTPS} on # 아래의 URL이외는 항상 http로 리다이렉트 RewriteCond %{HTTP_HOST} www.example.com RewriteCond %{REQUEST_URI} !^/admin/.*$ RewriteCond %{REQUEST_URI} !^/inquiry/.*$ # 단 아래를 제외하고. RewriteCond %{REQUEST_URI} !^/assets/.*$ RewriteCond %{REQUEST_URI} !^.*\.(js|css|gif|jpg|png|ico|php)$ # http로 리다이렉트 RewriteRule ^.*$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L] </IfModule>
- %{HTTP_HOST}로 호스트를 한정시키는 건、개발환경에서 무효화시키기 위해서.
- css나 이미지 파일을 리다이렉트 시키면 https ON의 페이지에서 암호화되지 않은 콘텐츠를 읽어들여 에러가 생기므로 예외를 써줌.
RewriteRule의 [R,L]은 무엇을 나타내는가
- [L]은 정의의 마지막 줄(Last)을 의미함. 이 줄 아래의 RewriteRule은 모두 무시. 가장 마지막 행에 씀.
- [L]을 쓰지 않아도 동작은 함.
- [R]은 리다이렉트 실행함.