Autor Zpráva
moskyt
Profil
Zdravím,

Mám více projektů, které postupně převádím na ssl a u některých potřebuji do url https vnutit. Chci se zeptat jaký máte názor na takový postup, že do htaccess přidám zápis:
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^.*$ %{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Jde mi o to, jak se na tento postup dívají vyhledávače google a seznam. Nemůže to být posuzováno jako nějaká závadná praktika? Nevzniká potom duplicita atd. ?

Předem díky za názor.
Keeehi
Profil
moskyt:
Nemůže to být posuzováno jako nějaká závadná praktika? Nevzniká potom duplicita atd. ?
Jelikož přesměrováváš, tak žádná duplicita nevzniká a je to v pořádku.
Kajman
Profil
Nechybí v tom pravidle https? A přidejte si flag NE.
M02
Profil *
V tom přesměrování je zvykem spíše spoléhat na proměnnou HTTPS než na číslo portu. Také proměnná SERVER_NAME není vhodná, je to kanonické jméno serveru, které se může snadno lišit od požadované domény, nebo může mít zcela nepoužitelnou hodnotu – správně tedy HTTP_HOST.

RewriteCond %{HTTPS} !on
RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
abc
Profil
Neměl by tam být i flag QSA?
moskyt
Profil
To https jsem tam měl, ale nějak se mi asi po odeslání příspěvku vymazalo.

Můžete někdo prosím napsat finální podobu toho zápisu. Jak by to nejlépe mělo vypadat?

Předem děkuji za pomoc.
moskyt
Profil
ideálně tedy takto?

RewriteCond %{HTTPS} !on
RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE,QSA]

pokud bych chtěl navíc přidat aby se vždy přesměrovalo na www. může být takto?

RewriteCond %{HTTPS} !on 
RewriteRule ^(.*)$ https://www.mojeadresa.cz/$1 [R=301,L,NE,QSA]
M02
Profil *
Flag QSA je tam ve všech uvedených případech zbytečný, žádné pravidlo neobsahuje query string.
abc
Profil
Ale taky tam ničemu nevadí a až tam query string bude, tak nebude muset řešit, proč to nefunguje
Radek9
Profil
abc:
Nevadí, ale ono jde hlavně o to, že REQUEST_URI ten query string již obsahuje.
Kajman
Profil
Radek9:
V REQUEST_URI není query string.
M02
Profil *
Není, ale je to jedno. Modul rewrite původní query string nepřepíše, pokud není nějaký nový v pravidle definován. Flag QSA pak slouží ke sloučení původního a nového query stringu
Radek9
Profil
Kajman:
Aha, pravda. Pletu si to s obsahem $_SERVER["REQUEST_URI"] v PHP.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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