특정 페이지만 HTTP에서 HTTPS로 리다이렉트되지 않도록 하는 방법

Last Updated: 2019년 07월 17일 댓글
()

네이버페이(Naver Pay)는 네이버에서 제공하는 핀테크의 일종으로, 은행 계좌나 체크카드 또는 신용카드를 미리 등록해 두고 등록한 결제 수단을 통해 결제하는 간편 결제 서비스입니다.

네이버페이 플러그인을 설치한 후에 네이버페이로부터 검수 중 승인이 보류 상태가 되는 경우가 있습니다. 예를 들어, 다음과 같이 "인입로그 확인간 호스트네임 미일치로 인한 호출 실패"를 해결하거나 특정 페이지만 SSL이 적용되지 않도록 조치해줄 것을 안내받을 수 있습니다.

인입로그 확인간 호스트네임 미일치로 인한 호출 실패 현상이 보여지고 있습니다. 따라서 가맹점의 호스팅업체(서버)를 통해 인증서 문제를 해결해주시거나, 혹은 네이버페이 담당자 측 가맹점정보(상품정보 XML)를 http:// 도메인 형식으로 유지하여 https:// 리다이렉트 ​​현상이 발생하지 않도록 수정 부탁 드립니다.

Let's Encrypt 무료 SSL 인증서를 발급받는 경우 "네이버페이 연동 시 ‘인입로그 확인간 호스트네임 미일치로 인한 호출 실패’ 문제"라는 글을 참고하여 인입로그 확인간 호스트네임 미일치로 인한 호출 실패’ 문제를 해결할 수 있습니다.

만약 이 방법을 사용할 수 없다면 가맹점정보(상품정보 XML)를 HTTP:// 도메인 형식으로 유지하여 HTTPS:// 리다이렉트 현상이 발생하지 않도록 수정하는 방법으로 문제를 해결할 수 있을 것입니다.

.htaccess를 사용하여 특정 페이지가 HTTPS로 리다이렉트되지 않도록 설정하기

특정 페이지만 HTTPS로 리디렉션되지 않도록 설정하려면 다음 코드를 .htaccess 파일에 추가하여 테스트해볼 수 있습니다.

<IfModule mod_rewrite.c>
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]
</IfModule>

이 코드가 잘 작동하지 않으면 "htaccess force HTTPS except one page" 글에서 제시하는 코드로 시도해보시기 바랍니다.

nginx 웹서버의 경우 다음 코드를 시도해볼 수 있을 것 같습니다.

server {
    listen 443;

    location /l/ {  # redirect https iframe requests to http server
        return 301 http://$server_name$request_uri;
    }
    # ...
}

server {
    listen 80;

    location / {  # the default location redirects to https
        return 301 https://$server_name$request_uri;
    }

    location /l/ {}  # do not redirect requests for iframe location
    # ...
}
// 출처: nginx: redirect everything from http to https, except one url-pattern (https://stackoverflow.com/questions/27857334/nginx-redirect-everything-from-http-to-https-except-one-url-pattern)

워드프레스 사이트의 경우, 이 방법이 잘 작동하지 않으면 인기 워드프레스 플러그인인 Really Simple SSL을 개발한 업체에서 만든 Really Simple SSL per page 플러그인을 사용해볼 수 있습니다.

웹사이트의 일부 페이지에만 SSL를 적용하거나, 페이지 하나만 SSL로 로드되지 않도록 하려는 경우 이 플러그인이 유용할 수 있습니다. 이 플러그인이 실제로 원하는 대로 작동하는지는 장담할 수 없으므로 플러그인 개발자에게 먼저 문의를 해보면 안전할 것 같습니다.

※ 위에 제시된 코드가 제대로 작동하지 않는 경우, 제대로 작동하는 코드를 알려주시면 글을 업데이트하도록 하겠습니다.

참고:

이 글이 도움이 되었나요?

평균 별점 / 5. 평가 참여:

첫 번째 평가자가 되어 주세요!

워드크래커의 아바타 이미지

워드크래커

전문 영한번역가. 워드프레스 애호가. 네이버 카페 「워프사」 운영.

댓글 남기기

Leave a Comment

카카오톡 상담 카톡 서비스 상담