Autor Zpráva
xlifer
Profil
Která verze zápisu do .htaccess přesměrování je správně? Fungují obě.

Verze 1:

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

Verze 2:

RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,QSA,L]
Keeehi
Profil
xlifer:
O správnosti se dá těžko mluvit, spíš jde o to co je vhodnější, lepší. Ve verzi 1 se kontroluje provoz na portu. 80 je defaultní pro http provoz ale apache může klidně poslouchat na jiném portu. Vhodnější tedy bude druhá podmínka. Co se samotného přesměrování týče, tak hezčí regulární výraz je v té první variantě ale fungují oba téměř stejně. Varianta se %{SERVER_NAME} je obecnější, ovšem v proměnné %{SERVER_NAME} vůbec nemusí být ta doména, co člověk zadal. Takže by bylo možná lepší použít %{HTTP_HOST}. Týká se to ale projektů co jsou na více doménách. Pokud je tvůj projekt jen na jedné, pak může být vhodnější ji tam prostě napsat jako v první verzi. Tak máš jistotu, že se bude přesměrovávat na správnou doménu nehledě na problémovou konfiguraci někde jinde.
Kajman
Profil
Do flagů bych přidal NE.
smitka
Profil
Příklady pro .htaccess mám na u.lynt.cz/htaccess

Pro univerzální použití je vhodné:

#http to https
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,QSA,NE,R=301]
xlifer
Profil
Kajman:
Jaký význam má flag "NE" ?


smitka:
A není lepší jak psal Keeehi, použít namísto {HTTP_HOST} přímo název domény, když je to pro konkrétní web?
Keeehi
Profil
xlifer:
Jaký význam má flag "NE" ?
Zajistí neescapování speciálních znaků. httpd.apache.org/docs/2.4/rewrite/flags.html#flag_ne

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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