Autor Zpráva
Numero1990
Profil
Zdravím,

na serveru ve složce /protected/ mám .htaccess
RewriteEngine On

RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

ve složce /protected/project1/ mám .htaccess
RewriteEngine on

RewriteRule ^[a-z-]+$ ?page=$1 [L,QSA]

Můj cíl je, aby veškeré požadavky, které jdou do složky /protected/ (a její podsložky), byly přesměrovány na verzi https.
Pokud udělám testovací složku /protected/test/, pro ni to funguje, ale pro složku /protected/project1/ ne, použije se nejspíš pravidlo až z /protected/project1/.htaccess, ačkoliv mám v /protected/.htaccess direktivu L, aby dál už nic nepřepisoval.

Jediné řešení, které mi zatím funguje, je obalit RewriteRule z druhého .htaccessu do RewriteCond %{HTTPS} on, ale pak zase myslet na to, že až to budu přesouvat ze složky /protected/, kde už HTTPS nebudu vyžadovat, tak to zase smazat. Šlo by to nějak univerzálněji?

Díky
Kajman
Profil
protected/project1/.htaccess má přednost před protected/.htaccess, pokud existuje a je pro podsložku povolené AllowOverride.

Co pravidla ze složky project1 (a dalších podsložek) napsat přímo do protected/.htaccess?
Numero1990
Profil
Jde mi o to, že do /protected/ chci dávat jednotlivé projekty a každý z nich má trochu jiné nastavení v .htaccess, proto bych chtěl globální nastavení řešit v /protected/.htaccess a individuální až v jednotlivých složkách a jejich .htaccessu. Je možné nějak vnutit to globální nastavení třeba přes konfigurační soubor serveru? Mám k němu přístup.
Davex
Profil
Globální nastavení přesuň z .htaccess přímo do konfigurace Apache nebo zkus v .htaccess nastavit RewriteOptions Inherit, ale to asi nebude přesně ono.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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