본문 바로가기

IT

[.htaccess] 모든 http접속을 https로 변경/일부 페이지 제외 코드

[.htaccess] 모든 http접속을 https로 변경/일부 페이지 제외 코드






필자는 워드프레스 bbs 블로그샵 테마를 사용 중이다.


보안서버는 법적으로 개인정보를 취급하는 모든 페이지에 적용 해야 한다.


그런데..?

모든 페이지에 적용 하지 않으면 해커로 인해 사이트 변조가 이루워질 경우...?

개인정보를 취급하는 페이지에만 적용하면 보안서버를 적용하나 마나인 경우가 된다.


그래서 모든 http접속을 https로 리다이렉트 시키고, 일부 페이지만 http로 접속 시키는 코드를 적용 했다.

일부 페이지를 제외 시키는 이유는 각자 다르겠지만, 필자는 네이버쇼핑에게 상품 DB를 제공하기 위하여 한페이지를 제외시켰다.

네이버가 https로 접근이 되는 상품DB를 인식하는데 문제가 있다고 한다.


http접속을 https로 리다이렉트 시키는 방법.

fpt에 접속해서 기본 도메인이 시작되는 폴더에

.htaccess 파일에 아래의 코드를 삽입한다.

.htaccess 파일이 없을 경우 만든다.


 

RewriteEngine On
 
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
 
# force https:// for all except some selected URLs    
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !/?exDBurl=ex [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
 
# force http:// for selected URLs
RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} /?exDBurl=ex [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


핑크색으로 표시된 부분이 http로 접속을 허용하는 주소이다.

http로 접속을 하게 만들 주소가 http://naver.com/?exDBurl=ex 이라고 가정하고,

http://naver.com을 제외한 ?exDBurl=ex만 입력한다.


일부 페이지를 http로 접속 시키지 않고, 모든 페이지를 https로 연결 시키고자 한다면 보라색 부분을 제외 시키면 된다.


혹은 아래의 코드를 사용한다.


 RewriteEngine On

RewriteCond %{SERVER_PORT} 80

RewriteRule ^(.*)$ https://도메인이름/$1 [R,L]


도메인 이름에 자신의 도메인을 입력한다.

ex)naver.com