/ / Ako chrániť heslom index.php a /, ale umožniť prístup ku všetkým ostatným súborom a podadresárom. - php, .htaccess

Ako chrániť heslom index.php a /, ale povoliť prístup ku všetkým ostatným súborom a podadresárom. - php, .htaccess

Moja otázka je veľmi podobná tejto: získanie "vyžaduje sa autentifikácia" pri požiadavke / namiesto /index.php

Vo vyššie uvedenej otázke je však cieľom povoliť prístup iba k koreňovej adrese URL alebo index.php a zabezpečiť prístup ku všetkým ostatným súborom a podadresárom pomocou ochrany heslom.

Bola poskytnutá vynikajúca odpoveď:

SetEnvIf Request_URI "^/$" allow=yes
SetEnvIf Request_URI "^/index.php$" allow=yes

AuthType Basic
AuthName "Password Required"
AuthUserFile /var/www/webinterface/.htpasswd
Options +FollowSymLinks
Order Deny,Allow
Satisfy any
Deny from All
Require valid-user
Allow from env=allow

Moja otázka je opačná: Chcem iba chrániť koreňovú adresu URL adresára alebo súboru index.php heslom a umožniť voľný prístup ku všetkým ostatným súborom v adresári. Keď som použil <FilesMatch "index.php"> Podarilo sa mi chrániť indexový súbor, ale koreňová adresa URL umožňovala prístup.

Som si istý, že odpoveď je v podstate zrejmá pre tých z vás, ktorí sú viac oboznámení s htaccess ako ja. Ako chránim heslom iba index.php a koreňovú adresu URL? Ďakujem.

odpovede:

2 pre odpoveď č. 1

Použite to takto:

SetEnvIfNoCase Request_URI "^/(index.php)?$" PROTECT

AuthType Basic
AuthName "Password Required"
AuthUserFile /var/www/webinterface/.htpasswd
Require valid-user
Satisfy any
Order Allow,Deny
Allow from All
Deny from env=PROTECT
  • Regexový vzor ^/(index.php)?$ bude sa zhodovať / alebo /index.php a nastaví premennú env PROTECT
  • Allow from All umožňuje všetky URI
  • Deny from env=PROTECT popiera premennú env PROTECT

0 pre odpoveď č. 2

Nie ste si istí, či to je to, čo skutočne chcete, ale čo sa týka možností -Indexes, použité takto?

<Directory /www/somefolder> Options -Indexes FollowSymLinks AllowOverride None </Directory>