Szukałem idealnego przekierowania 301. Ale znajduję tak wiele rozwiązań i nie wiem, co jest najlepsze.Dobra praktyka: 301 Przekieruj HTTP do HTTPS (standardowa domena)
Oto co chcę zrobić
- http://domain.tld/ → https://domain.tld/
- http://www.domain.tld/ → https://domain.tld/
- https://www.domain.tld/ → https://domain.tld/
Dobrych Praktyk .htacess?
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule^https://%1%{REQUEST_URI} [R=301,L]
</IfModule>
To jest mój ulubiony kod. Przynajmniej rozwiąż teraz.
Alternatywne sposoby
Znalazłem również wiele innych sposobów, aby przekierować z HTTP
do HTTPS
. Na przykład:
1.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Brakujące jeden krok? I nie ma tutaj [R=301,L]
?
2.
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Is a different order generally better?
powinienem używać
RewriteRule ^(.*)$
zamiast
RewriteRule (.*)
?
3.
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} example\.com$ [NC]
RewriteRule^https://example.com%{REQUEST_URI} [R=301,L,NE]
Czy przy użyciu pełnej nazwy domeny mają żadnych korzyści z wydajnością? Czy naprawdę potrzebuję NE
? ([R=301,L,NE]
vs. [L,R=301]
)
Więc moje pytanie do wszystkich ekspertów: Jaki jest najlepszy (sceniczne) sposób przekierować zarówno z HTTP
do HTTPS
iz do
HTTPS://
?
dzięki. Używam teraz tego kodu: RewriteEngine On RewriteCond% {HTTPS} off RewriteRule^(. *) $ Https://example.com/%{REQUEST_URI} [R = 301, L , NE] RewriteCond% {HTTP_HOST}^www \. (. +) $ [NC] RewriteRule^https: //% 1% {REQUEST_URI} [R = 301, L, NE] –
dash
Wiem, że to nieco stara odpowiedź, ale przyzwyczajenie 'RewriteRule^https: //domain.tld/% {REQUEST_URI} [R = 301, L, NE]' z alternatywnego powrotu 3, np. https: //domain.tld//index.html z podwójnymi ukośnikami? Czy linia nie powinna odczytywać 'RewriteRule^https: //domain.tld/% {REQUEST_URI} [R = 301, L, NE]' bez ukośnika między statycznym tekstem domeny a '% {REQUEST_URI}'? –
masz rację: Właśnie poprawiłem ten – nlu