/ / .htaccess v podadresári 'overriding' parent htaccess - php, .htaccess, mod-rewrite, rewrite, ochrana heslom

.htaccess v podadresári nadradenej nadradenej htaccess - php, .htaccess, mod-rewrite, rewrite, password-protection

hľadal dva dni a nedokážem celkom nájsť správne riešenie kvôli svojmu nepochopeniu mod_rewrite a časových obmedzení v tomto projekte, takže dúfam, že niekto môže pomôcť.

Cieľom

Ak klient nemá správny súbor cookie, prepíše všetky žiadosti do koreňového indexu index.php. Ak má klient správny súbor cookie, umožnite mu prezeranie podľa vlastného želania.

Problém

Htaccess v mojom podadresári preberá nad mojím koreňovým htaccess, takže požiadavky ako www.mydomain.com/subdir/index.php nie sú presmerované.

Môj koreň .htaccess

Options FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_COOKIE} !^.*pass.*$
RewriteCond %{REQUEST_URI} !^/index.php$
RewriteRule ^(.*)$ http://www.mydomain.com/index.php?url=$0 [NC]

Môj subdir htaccess

RewriteEngine On
RewriteBase /
RewriteCond $1 !.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

Dodatočné informácie

V ideálnom prípade sa snažím vytvoriť chránené heslomoblasť, takže všetky požiadavky sú smerované na index.php, kde je možné zadať heslo a po overení sa vytvorí súbor cookie, čo umožňuje bezplatné prehliadanie obsahu a podadresárov. Takže ak existuje lepší spôsob, ako to dosiahnuť, dajte mi prosím vedieť a ja som nebol preč .htpasswd, pretože potrebujem vlastné prihlasovacie, chybové a úvodné stránky.

Subdir .htaccess je tiež obsluha adresy URL ExpressionEngine.

Vďaka.

odpovede:

20 pre odpoveď č. 1

Povoliť vykonávanie pravidiel prepísania z rodiča.htaccess (htaccess z nadradeného priečinka), musíte ho výslovne povoliť (Apache bude považovať pravidlá prepisovania v aktuálnom .htaccess za jediné, ktoré je potrebné vykonať, pokiaľ prepisovaná URL zostane v rovnakom podpriečinku).

Tento riadok musíte pridať do svojho .htaccess v podadresári:

RewriteOptions inherit

Manuál Apache: http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriteoptions