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ď č. 1Použ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ú envPROTECT
Allow from All
umožňuje všetky URIDeny from env=PROTECT
popiera premennú envPROTECT
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>