Přesměrování na HTTPS a WWW/non-WWW doménu
Zdravím,
snažím se pomocí úpravy .htaccess souboru nastavit přesměrování veškerého provozu na HTTPS verzi webu a zároveň na WWW nebo non-WWW doménu. A to nejen pro přístup na doménu, ale i pro všechny soubory či jiné atributy v URL.
Bohužel se mi to nedaří, vždy je někde mezera. Kontrolu provádím nástrojem https://www.seobility.net/en/redirectcheck/.
Zkoušel jsem všechno možné, ale nefunguje ani nastavení doporučené ve Wedos návodu. Vždy to nějaké requesty vynechá.
Dokázal by mi prosím někdo poradit?
# Turn on Rewrite Engine
RewriteEngine On
# Force HTTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Zkoušel jsem i použití hlaviček (viz generátor):
# Force HTTPS and remove WWW
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [OR,NC]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
RewriteCond %{HTTP:X-Forwarded-SSL} !https
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
4 Answers
Díky,
toto je jedna z variant, kterou jsem zkoušel. Na první pohled vypadá, že by měla fungovat, avšak některé URL přesto směruje chybně.
Např.
https://r3gi.cz/GrumpyCat.png
vede na
https://r3gi.cz/GrumpyCat.png
dále
http://r3gi.cz/GrumpyCat.png
vede na
http://r3gi.cz/GrumpyCat.png
a
http://www.r3gi.cz/GrumpyCat.png
vede na
http://www.r3gi.cz/GrumpyCat.png
Viz přehledněji Redirect Checker.
Obsah (kořenového) .htaccess souboru je následující. Nic dalšího tam pro účely testů není.
# Turn on Rewrite Engine RewriteEngine On # Force WWW RewriteCond %{HTTP_HOST} ^r3gi\.cz [NC] RewriteRule (.*) https://www.r3gi.cz/$1 [R=301,QSA,L] # Force HTTPS RewriteCond %{HTTPS} off RewriteRule (.*) https://www.r3gi.cz/$1 [R=301,L] # Force secure requests Header set Content-Security-Policy "upgrade-insecure-requests;"
Aktuálně je na hostingu nasazen tento htaccess soubor, takže neváhejte testovat 🙂 Uvítám jakoukoliv radu. Už mi nějak dochází nápady.