Autor | Zpráva | ||
---|---|---|---|
xlifer Profil |
#1 · Zasláno: 14. 5. 2018, 18:06:08
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 |
#2 · Zasláno: 14. 5. 2018, 18:55:45
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 |
#3 · Zasláno: 15. 5. 2018, 09:48:51
Do flagů bych přidal NE.
|
||
smitka Profil |
#4 · Zasláno: 15. 5. 2018, 12:28:56
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 |
||
Časová prodleva: 5 let
|
0