Checkout / Account뿐만 아니라 프론트 엔드의 모든 페이지에서 HTTPS 강제 결제 /

백엔드 에서 프론트 엔드에서 보안 URL 사용을 활성화했습니다 . 그러나 사용자는 결제 / 계정 페이지를 제외하고 비보안 URL을 통해 내 사이트를 계속 방문 할 수 있습니다.

모든 페이지에 보안 URL을 적용하고 싶습니다. 내가 지금하는 일은 안전하지 않은 기본 URL을 “https : // …”로 변경하는 것입니다.

작동하는 것 같습니다. 사용자가 HTTP를 사용하면 https로 리디렉션됩니다. 그러나 이것이 올바른 방법인지 궁금합니다. 부작용이 있습니까?



답변

기본 답변은 설정에 따라 안전하지 않은 기본 URL을 https : //로 설정하는 것입니다. 사용자가 http : //를 사용하려고하면 이미 리디렉션하기에 충분합니다.

웹 서버 수준의 리디렉션은 php를 먼저 통과하는 요청을 피하기 때문에 더 좋습니다.

완벽한 보안 솔루션을 원한다면 https://hstspreload.appspot.com/에 웹 사이트를 추가해야합니다 . 그러나 인증서를 변경해야 할 경우 큰 문제가 발생할 수 있습니다. Hoster가이 부분에 관심을 갖도록하십시오.


답변

아파치에서 .htaccess 로이 작업을 수행 할 수 있습니다. 다음 줄을 사용하십시오.

############################ Force SSL ############################
RewriteCond %{HTTP_HOST} !^localhost$
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
############################ Force SSL ############################


답변

이것을 가로 질러 넘어지는 사람에게는 (내가했던 것처럼)

htaccess를 사용하지 마십시오. 관리자로 이동Stores -> General -> Web and change -> Use Secure URLs on Storefront -> Yes and Use Secure URLs in Admin -> Yes

파일을 편집 할 필요가 없습니다.


답변

이전 솔루션을 사용해 보았지만 작동하는 것처럼 보이지만 관리자 패널에서 나를 잠갔습니다 (이유를 완전히 이해하지 못함).

관리자 패널에 들어가 다시 내가 phpMyAdmin에 들어갈 및 데이터베이스 테이블에 들어갈했다 core_config_data 모두 변경 경로 : 웹 / 보안 /의 use_in_adminhtml웹 / 비보안 / BASE_URL 다시 관리자 패널로 돌아가. 데이터베이스에서 편집해야 할 경우 캐시 폴더를 지우는 것을 잊지 마십시오.

그래서 대신 관리자에 로그인 할 수있는 다음 .htaccess 솔루션을 적용했습니다.

# AFTER THIS SECTION
############################################
## workaround for HTTP authorization
## in CGI environment
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# PUT THIS 
############# ALL PAGES HTTPS #################
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !/admin/
RewriteCond %{REQUEST_URI} !/downloader/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
############# ALL PAGES HTTPS #################

누군가에게 도움이되기를 바랍니다.


답변

.htaccess의 대부분의 접근 방식은 http를 통해 액세스하면 대부분의 페이지를 홈으로 리디렉션합니다.

예 :
http://www.mystore.com/productA.html => http://www.mystore.com/

https://www.mystore.com/productA.html 대신

다음 .htaccess 재 작성 (아파치 만 해당)으로 해결했습니다.

#Force SSL
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

출처를 참조하십시오 .


답변