получение «требуется аутентификация» при запросе / вместо /index.php - PullRequest
7 голосов
/ 04 января 2012

На моем сервере у меня есть следующий файл .htaccess:

DirectoryIndex index.php

AuthType Basic
AuthName "Password Required"
AuthUserFile /var/www/webinterface/.htpasswd
Options +FollowSymLinks
Require valid-user

<Files index.php>
    Satisfy any
    Allow from *
</Files>

Если я запрашиваю URL-адрес «IP-ADDRESS / index.php», все работает нормально, я получаю файл index.php, отображаемый без запроса аутентификации. Однако, как только я запрашиваю «IP-адрес», браузер запрашивает мои учетные данные.

Почему это так? Чего мне не хватает?

1 Ответ

8 голосов
/ 04 января 2012

Попробуйте заменить блок, чтобы использовать mod_setenvif для проверки URI запроса вместо использования <Files>.Модули mod_auth * имеют приоритет над mod_dir, поэтому отображение от / до /index.php не происходит до тех пор, пока не произойдет аутентификация.Mod_setenvif произойдет до авторизации.Попробуйте:

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

Если запрашиваемый URI точно равен / или /index.php, устанавливается переменная allow.Вещи после строк Auth говорят, что нужно запретить все, кроме действительного пользователя или , если установлена ​​переменная allow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...