Přesměrování na HTTPS a WWW/non-WWW doménu

Vyřešeno591 zhlédnutíWebhosting
0

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]

Role: Zákazník
Otázka je uzamčena pro nové odpovědi.
Vybral nejlepší odpověď

Dobrý den,
požadujete tedy www nebo non-www přesměrování a jaké requesty popř. url přesně nefungují?

0
29.46K - WEDOS Internet, a.s. 0 Comments

Dobrý den,

máme připravená tato pravidla, ale jsou tam hardcodované názvy domén.

RewriteEngine On
# přesměrování všech variant bez www na zabezpečenou variantu s www
RewriteCond %{HTTP_HOST} ^domena\.cz [NC]
RewriteRule (.*) https://www.domena.cz/$1 [R=301,QSA,L]

# přesměrování nezabezpečené varianty na zabezpečenou variantu s www
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.domena.cz/$1 [R=301,L]

# přesměrování všech dalších nezabezpečených požadavků na zabezpečené
Header set Content-Security-Policy "upgrade-insecure-requests;"

Třeba se vám podaří z nich udělat proměnné, měly by fungovat stejně. Proměnná se mi osvědčila třeba tato:

%{SERVER_NAME}
Role: Podpora Web: https://wedos.cz Vizitka: Pokusím se vám poradit s CMS.
Vybral nejlepší odpověď
0

Cílová by měla být nejlépe non-www doména s 301 přesměrováním, kvůli SEO. Testuji to na webíku r3gi.cz. Potřebuji, aby byly dostupné všechny kombinace, tj. např.

http://r3gi.cz

https://r3gi.cz

http://www.r3gi.cz

https://www.r3gi.cz

A zároveň obdobně i přístup k souborům, např.

http://r3gi.cz/GrumpyCat.png

…či k subdoménám a souborům pod nimi.

https://phpbb.r3gi.cz/

Pro snadnou kontrolu používám zmíněný Redirect checker.

Zkoušel jsem vše možné, ale vždy je alespoň jedna varianta, která je nepokryta. Ideálně bych to chtěl udělat dynamicky, bez zbytečného hardcodování názvů domén.

Role: Zákazník
Změnil status na publikováno
0

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.

Role: Zákazník
Změnil status na publikováno
0

Ještě dodám, že na webu je pro testovací účely použit nedůvěryhodný Wedos certifikát. Ale pro účely přesměrování by o snad vadit nemělo.

Role: Zákazník
publikoval nový komentář

Uvedené řešení stále nefunguje a nenarazil jsem ani na žádné jiné, které by fungovalo. Nemůže být chyba někde v konfiguraci serveru či infrastruktury?

Categories