모든 http : // 요청을 https : //로 리디렉션


22

이전 에이 질문을 게시했습니다 : https : //.com/questions/36104047/how-to-redirect-all-http-requests-to-https-on-magento 그러나 아무런 반응도 얻지 못했습니다.

여기 내 사이트 URL이 있습니다 : www.trendy-mode.nl 그것은 당신을 리디렉션합니다 : https://www.trendy-mode.nl/

이제 문제는 메뉴 링크이거나 다른 하위 링크가 https://

EX로 리디렉션되지 않는
것입니다.-NIEUW | KLEDING | 쇼엔 | 액세서리 등.
NIEUW 메뉴를 클릭하면 새 페이지가 열리지 만https://

나는 많은 .htaccess 조정을 시도했지만 작동하지 않습니다. 여기에 나를 도와 줄 사람이 있습니까?

미리 감사드립니다!

답변:


30

비보안 기본 URL을 https로 변경하면 모든 링크가 변경되고 비 https 요청은 https://example.com/ (홈 페이지)으로 리디렉션 됩니다. 기본 URL 유효성 검사에 실패하면 Magento가 수행하기 때문입니다.

따라서 이것은 좋은 시작이지만 http://example.com/foo/https://example.com/foo/로 리디렉션 하려면 웹 서버 리디렉션을 통해해야합니다.

예를 들어, 맨 위에 다음 코드를 추가하십시오 .htaccess.

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

또는 니스와 같은 리버스 프록시를 사용하는 경우 :

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

이는 Varnish에서 Magento 로의 요청에는 SSL (HTTP)이 없지만 원래 요청이 SSL (HTTPS)로 작성된 경우 Varnish는 X-Forwarded-Proto 헤더를 "https"로 설정하기 때문입니다.


@Abhishek 방금 귀하의 사이트를 테스트했으며 아직 작동하지 않기 때문에-위의 Fabians 지침은 정확합니다. )이지만 바로 다음에 언급됩니다 RewriteEngine On. 내가 한 방식은 두 번째 줄이 읽는다는 점에서 약간 다릅니다. RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Peter Svegrup

magento 사이트를 https로 완전히 이동 한 후 Google 페이지 순위에 악영향을 미쳤습니까?
paj

10

완전성을 위해 fschmengler가 몇 가지 추가 사항으로 제안한 것과 매우 유사한 작업을 수행합니다.

RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_METHOD} !=POST
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

우리는 이것을 바로 아래의 .htaccess 섹션 안에 넣습니다. RewriteEngine On


9

백엔드에서 안전하고 안전하지 않은 기본 URL을 설정하십시오. 백엔드의 프론트 엔드에서 보안 URL 사용에 예를 설정하십시오.

그런 다음 app / etc / local.xml을 편집하고 이것을 포함하십시오.

<?xml version="1.0"?>
<config>
  <frontend>
     <secure_url>
      <all>/</all>
     </secure_url>
   </frontend>
</config>

또는 적어도 config 태그 사이에 XML 트리 프론트 엔드를 붙여 넣으십시오.


이것은 내 문제를 해결했습니다. 나는 모든 것을 올바르게 설정했지만 일부 URL은 여전히 ​​https 대신 http를 사용하고 있습니다.
mutiemule

https에서 http로 지정 URL을 리디렉션하고 싶습니다. 그래서 당신은 그것에 대해 어떤 생각이 있습니까?
Sarfaraj Sipai

5

확인하십시오 System > Configuration > Web > url_options > "Auto-redirect to Base URL = No". 로 설정되어 yes문제가 발생했습니다.

아래 코드를 .htaccess 파일에 넣으십시오.

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

4

magento가 모든 "비보안"요청을이 URL로 리디렉션하고이 URL과의 링크를 생성하므로 가장 안전한 방법은 비보안 기본 URL을 https로 변경하는 것입니다.

시스템-> 구성-> 일반-> 웹에서 기본 URL을 변경할 수 있습니다


재생 해 주셔서 감사합니다 .. 내가 해냈지만 지금이 링크를 열면 : www.trendy-mode.nl/damesschoenen/slippers 홈페이지로 이동합니다. 어떤 해결책이 있습니까?
Abhishek Kumbhani

흠 그거 이상해 :) 기본 URL의 후행 슬래시가 마음에 드셨습니까? https를 사용하여 전체 페이지를 갖는 것은 미래에 (또는 이미 지금?) 관련되어있을 가능성이 높기 때문에이 문제는 정말 흥미 롭습니다. 그가 이미
젠토

fschmengler의 솔루션이 작동해야한다고 생각하지만 @Michael의 답변은 이것이 작동하는 경우 올바른 방법으로 보입니다.
David Verholen

잘 fschmenglers 대답은 거짓이 아닙니다. Magentos 업데이트 전략이 .htaccess와 index.php를 만지지 만 local.xml은 다루지 않으므로 화가납니다. 그래서 그것은 더 '업데이트 저장'입니다 imho
Michael

2

아파치 문서는 재 작성을 사용하여에 추천 :

httpURL 을로 리디렉션하려면 https다음을 수행하십시오.

 <VirtualHost *:80>
     ServerName www.example.com
     Redirect / https://www.example.com/
 </VirtualHost>

 <VirtualHost *:443>
     ServerName www.example.com
     # ... SSL configuration goes here
 </VirtualHost>

이 조각은, 주요 서버 구성 파일에 가야 하지.htaccess질문에 질문한다.

이 기사는 질문을하고 대답 한 후에 만 ​​나올 수 있지만 현재 진행중인 방법 인 것 같습니다.


0

.htaccess 파일 맨 위에이 코드를 추가하십시오.

RewriteEngine On
RewriteCond %{HTTPS} off
# First rewrite to HTTPS:
# Don't put www. here. If it is already there it will be included, if not
# the subsequent rule will catch it.
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
# [NC] is a case-insensitive match
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.