Autor Zpráva
marek187
Profil
Potrebujem pravidlo pre server apache2 do .htaccess, ktoré by permanentne presmerovalo:

non-www -> www
non-ssl -> ssl

... zakaždým však dostanem cyklické presmerovanie (skúšal som aj viac takýchto pravidiel), napr.:

# Redirect non-www to www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
 
# Redirect non-ssl to ssl
RewriteCond %{HTTPS} !on 
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

A v tom lepšom prípade non-www presmeruje na www+ssl, ale www ostane bez ssl, napr.:

RewriteCond %{SERVER_PORT} =80 
RewriteCond %{HTTP_HOST} ^domena.sk [NC]
RewriteRule ^(.*)$ https://www.domena.sk/$1 [L,R=301] 

...okrem iného stále čistím cache...
Davex
Profil
V prvních dvou pravidlech je chyba v tom, že variantu bez www přesměrováváš na variantu s www a protokolem http:// a z tohoto přesměrováváš na variantu bez www a https:// - potom se to zacyklí. V obou pravidlech by měl být cíl přesměrování s www a https://.
marek187
Profil
# Redirect non-ssl to ssl
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] 

# Redirect non-www to www
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

... použil som tieto pravidlá a už všetko funguje ako má, ale bol by som rád, keby sa nato pozrel ešte nejaký odborník, či je to napísané bez chýb a bez duplicity... resp. či sa to nedá napísať lepšie/jednoduchšie...
Kajman
Profil
Do hradaných závorek si přidejte i flag NE.
marek187
Profil
Kajman:
Do hradaných závorek si přidejte i flag NE.

Oplatí sa mi to urobiť aj keď momentálne nemám problém so špeciálnymi znakmi (nemení mi znaky na ich ekvivalent hex kódu)?

Inak takto je to správne (v oboch pravidlách, v hranatých zátvorkach vrámci RewriteRule)?

# Redirect non-ssl to ssl
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L,NE] 
 
# Redirect non-www to www
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L,NE]
Kajman
Profil
2x ano.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: