htaccess 파일에서 특정 페이지(URL)를 제외하고 HTTPS로 리디렉션시키기

SSL 보안서버 인증서

SSL 인증서를 설치하고 다음과 같은 코드를 .htaccess 파일에 추가하면 모든 http 트래픽이 https로 리디렉됩니다.


RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

하지만 경우에 따라 SSL 인증서를 설치한 상황에서 특정 페이지만 http로 연결되도록 해야 하는 경우가 있을 수 있습니다.

예를 들어, 개인정보를 취급하는 페이지에는 모두 SSL 보안서버 인증서를 설치하여야 하지만 네이버 쇼핑과 네이버 페이를 사용하려면 https가 아닌 일반 http로 접속이 되어야 한다고 합니다.

이 경우 다음 stackoverflow 글을 참고해볼 수 있습니다.

다음과 같은 코드를 htaccess에 추가하면 특정 URL을 제외한 모든 URL이 https로 리디렉션될 것입니다.


RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !/npay_product_info/ [NC]RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
# force http:// for selected URLs
RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} /npay_product_info/ [NC]RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

혹은 다음과 같은 코드를 시도해볼 수 있습니다.

RewriteEngine On
# Go to https if not on room.html
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^/room.html$ [NC]RewriteRule ^(.*)$ https://www.mycookiedomain.com/$1 [R,L]
# Go to http if you are on room.html
RewriteCond %{SERVER_PORT} !80
RewriteCond %{REQUEST_URI} ^/room.html$ [NC]RewriteRule ^(.*)$ http://www.mycookiedomain.com/$1 [R,L]// 출처: stackexchange

만약 위의 코드를 넣어도 제대로 작동하지 않으면 HTTPS로 강제로 리다이렉트되도록 하는 플러그인이나 기능이 있으면 해제하면 제대로 작동할 것입니다. 예를 들어, 사이트그라운드에 워드프레스를 설치하면 SG Optimizer가 설치될 수 있습니다.

사이트그라운드 Force HTTPS 설정

워드프레스 알림판 > SG Optimizer > HTTPS Config에서 Force HTTPS 설정이 ON으로 설정되면 위의 코드를 적용해도 작동하지 않을 수 있습니다. SG Optimizer에서 Force HTTPS 설정을 OFF로 설정하고 cPanel에서도 Force HTTPS 설정이 ON으로 되어 있으면 OFF해주도록 합니다.

워드프레스의 일부 페이지에만 SSL과 HTTPS를 적용하는 싶은 경우에는 “워드프레스의 특정 페이지에만 SSL과 HTTPS를 적용하는 방법“을 참고해보세요.

참고:

Recent Posts

Leave a Comment

Start typing and press Enter to search