HTTP
에서 HTTPS
으로 성공적으로 이동했으며 이제 일부 리디렉션 체인이 있습니다. 우리는 직접, 다음을 수행 할 : HTTP에서Magento에서 HTTP 대 HTTPS 및 301 리디렉션 체인
: HTTPS에 //domain.tld가 : HTTP에서
을 //www.domain.tld : //domain.tld/subdir/를 HTTPS에 : //www.domain.tld/subdir/
는 지금, www가이 같은 301
HTTPS
에 다시 먼저 추가됩니다
- 이
HTTP : //domain.tld => HTTP : //www.domain.tld =>은 https :
를 //www.domain.tld HTTP : //domain.tld/subdir/ => HTTP : //www.domain.tld/subdir/ =>은 https : 또한
//www.domain.tld/subdir/, 가능하다면, 서버의 모든 다른 도메인 (마 젠토 저장), 안 HTTPS를 사용할 수 있어야하며 HTTPS로 다시 리디렉션되어야합니다. 당신은 이런 식으로 하나의 301 리디렉션 규칙에 모두 http->https
및 non-www->www
규칙을 결합 할 수 있습니다
DirectoryIndex index.php
SetEnvIf SERVER_PORT 443 HTTPS=on
SetEnvIf X-Forwarded-Proto https HTTPS=on
<IfModule mod_rewrite.c>
// DEFAULT //
RewriteEngine on
Options +FollowSymLinks
RewriteBase/
DirectoryIndex index.php
// REDIRECT ALL TO HTTPS //
RewriteCond %{HTTP_HOST} www\.domain\.tld [NC]
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
// REMOVE INDEX.PHP AND REIDIRECT TO ROOT DIRECTORY //
# IN ALL DIRECTORIES (EVEN IN SUB DIRECTORIES)
# RewriteCond %{THE_REQUEST} /index\.php [NC]
# ONLY WHEN ON ROOT
RewriteCond %{THE_REQUEST} \s+/index\.php [NC]
RewriteRule ^(.*?)index\.php$ /$1? [L,R=301,NC,NE]
// REMOVE HOME REWRITE FROM MAGENTO //
RewriteRule ^home/?$ /? [R=301,L,NC]
// ADD WWW TO NONE WWW FOR BOTH HTTPS AND NONE HTTPS //
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
// REDIRECT ALL .HTML FILES AND ALL .HTML/ FILES WITH TRAILING SLASH //
RewriteRule ^google[0-9a-f]+.html$ - [L]
RewriteRule (.+)\.html$ /$1/ [L,R=301]
RewriteRule (.+)\.html\/$ /$1/ [L,R=301]
// ADD TRAILING SLASH //
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L,R=301]
// CHECK IF REDIRECT POINTS TO A VALID FILE ##
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
// REWRITE EVERYTHING ELSE TO INDEX.PHP //
RewriteRule .* index.php [L]
</IfModule>
덕분에 @anubhava 거의 작동합니다. 위의 규칙을 사용하여 설정 한 도메인에서 완벽하게 작동하지만 다른 모든 도메인 (Magento 상점)도이 도메인으로 다시 리디렉션됩니까? – Alldo
하위 도메인에 대해'http-> https'를 리디렉션하지 않으시겠습니까? – anubhava
맞습니다. 이 옵션은 동일한 서버에서 총 5 개의 도메인 중 하나의 도메인에 대해서만 유효해야합니다. 가능한 경우 다른 모든 도메인을 없음 https로 리디렉션하고 싶습니다. – Alldo