Разрешить доступ только к индексу каталога - PullRequest
6 голосов
/ 25 июля 2011

Я возился с этим все утро, я действительно надеюсь, что кто-нибудь может мне помочь.У меня есть каталог на моем сайте, к которому должны иметь доступ только администраторы.Поэтому я защитил его паролем с помощью файла .htaccess.Но я хочу, чтобы index.php оставался доступным.

Поэтому я попытался:

AuthUserFile "/home/example.com/passwords/.htpasswd"
AuthType Basic
AuthName "Admin"
require valid-user

<FilesMatch "^index\.php$">
    Satisfy Any
    Allow from all
</FilesMatch>

И да, это работает, но только если вы явно указали index.php в URL:

http://www.example.com/admin/index.php -> OK

http://www.example.com/admin/ -> Всплывающее окно с плачем о входе

http://www.example.com/admin -> Всплывающее окно с плачем о входе

Итак, я продолжил и изменил регулярное выражение:

<FilesMatch "^(|index\.php)$">
    Satisfy Any
    Allow from all
</FilesMatch>

Не лучшее регулярное выражение, которое я когда-либо писал, но эй, есть какой-то результат:

http://www.example.com/admin/index.php-> ОК

http://www.example.com/admin/ -> ОК

http://www.example.com/admin -> Всплывающее окно с воплем о входе в систему

Я просто не понимаю, почему этоне работаетЯ также попытался полностью изменить ситуацию так:

AuthUserFile "/home/example.com/passwords/.htpasswd"
AuthType Basic
AuthName "Admin"

<FilesMatch "^(?!index\.php).+$">
    require valid-user
</FilesMatch>

Но опять же безрезультатно ... Кто-нибудь видит решение?

1 Ответ

0 голосов
/ 02 мая 2019

Я не знаю, как разрешить доступ на http://www.example.com/admin но вы можете избежать вызова каталога, перенаправив доступ к index.php как вы можете видеть здесь:

RewriteRule ^admin$ admin/index.php

или если вам нужно получить параметры

RewriteRule ^admin\/?\?([^#]*)$ admin/index.php?$1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...