Autor Zpráva
StepanMatl
Profil
Zdravím, zjistil jsem, že když zadám URL složky bez koncového lomítka:

https://www.web.cz/slozka

dojde nejdřív k přechodu na:

http://www.web.cz/slozka/

a až poté na:

https://www.web.cz/slozka/

Jak se prosím zbavit toho zbytečného přesměrování na HTTP verzi? Děkuji.
anonym_
Profil *
StepanMatl:
Chybu ve tvém přesměrováváni vyvestime z křišťálové koule? Hm, zkusím, moment..
StepanMatl
Profil
RewriteEngine On

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

RewriteCond %{ENV:HTTPS} !^.*on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Kajman
Profil
Ten přechod z https na http je divný. To by mod_dir a jeho přidání lomítka neměl dělat. Když testujete ENV:HTTPS místo HTTPS, tak tam máte asi nějakou mezivrstvu a apache už neběží na https, že? Něco jako
serverfault.com/questions/847903/apache-directoryslash-redirects-https-requests-back-to-http


#vypnuti pridani lomitka adresarum
DirectorySlash Off

#od apache verze 2.4 asi bude potreba odkomentovat
#RewriteOptions AllowNoSlash

#nahrada pridani lomitka adresarum, po otestovani mozno zmenit 302 na 301
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$ https://%{HTTP_HOST}/$1/ [R=302,L]
StepanMatl
Profil
Možná je to nějaká specialita Onebitu... Ale jste borec, stačilo přidat

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$ https://%{HTTP_HOST}/$1/ [R=302,L]

hned za

RewriteEngine On

a problém je vyřešen! :) Akorát když je v té složce další .htaccess, tak to nefunguje...
Kajman
Profil
Ale to nefungují ani ta současná přesměrovací pravidla, když máte pro podsložku upřesněná jiná pravidla, ne?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0