Certyfikat musi obejmować zarówno www i bez www https. Niektóre certyfikaty dostawcy obejmują zarówno adres www.xxxx.yyy, ale tylko jeden dla xxxx.yyy.
Włącz przepisuje:
RewriteEngine On
Dodać wszystkie https użytku http:
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://xxx.yyy/$1 [L,R=301]
tylko zrobić https www używać non-www https:
RewriteCond %{SERVER_PORT} 443
RewriteCond %{HTTP_HOST} ^www[.].+$
RewriteRule ^(.*)$ https://xxxx.yyy/$1 [L,R=301]
Nie można przetwarzać non -www https, w przeciwnym razie występuje pętla.
w [L, R = 301]
- L = Jeśli zasada przetwarzano nie przetwarza więcej.
- R = 301 = Informuje przeglądarkę/robota o konieczności wykonania stałego przekierowania.
bardziej ogólny
Bardziej ogólne podejście - nie zależne od portu - jest:
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^(.*)$ https://xxxx.yyy/$1 [R=301,QSA]
aby każdy URL z www
upuść go.
RewriteCond %{HTTPS} !on
RewriteCond %{HTTPS} !1
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteRule ^(.*)$ https://xxxx.yyy/$1 [R=301,QSA]
zmusić niebędące https URL, nawet dla tych systemów w dół od load-wyważarki tą kroplą https, używających protokołu HTTPS.
Należy pamiętać, że nie przetestowałem opcji forwarded
, więc docenilibyśmy opinie na temat wszelkich problemów z nimi.Te linie można pominąć, jeśli system nie znajduje się za równoważeniem obciążenia.
DO HTTP_HOST lub nie
Można użyć ${HTTP_HOST}
być częścią adresu URL w RewriteRule
, czy można używać wyraźny kanoniczną nazwę domeny tekst (xxxx.yyy
powyżej).
Określenie nazwy domeny w sposób jawny zapewnia, że w adresie URL dostarczanym przez użytkownika nie są stosowane elementy łagodnie podnoszące znaki, które mogą skłonić twoją stronę do zrobienia czegoś, na co nie może być przygotowana, lub przynajmniej zapewnia, że właściwa nazwa domeny pojawia się na pasku adresu, niezależnie od tego, który ciąg adresu URL otwiera stronę.
Może nawet pomóc w konwersji domen zakodowanych przy użyciu kodu punycode, aby wyświetlać prawidłowe znaki Unicode na pasku adresu.
zaznaczyć prawidłową odpowiedź już! –