Я установил аутентификацию по паролю для веб-сайта в .htaccess и хотел бы сделать исключение, когда входящий запрос относится к определенному URI. В основном это работает до одной точки.
.htaccess выглядит так:
AuthType Basic
AuthName "Password"
AuthBasicProvider web-user
<RequireAny>
Require valid-user
Require env let_me_in
</RequireAny>
Я добавил:
SetEnvIf Request_URI "/path1/path2/?rest" let_me_in
, но в этом случае вопросительный знак опускается и авторизует меня без пароля для / path1 / path2 / rest , но не для / path1 / path2 / ? rest
если я изменю его, добавив символ экранирования, например так:
SetEnvIf Request_URI "/path1/path2/\?rest" let_me_in
он все еще требует авторизации для / path1 / path2 /? Rest
xxx.xxx.xxx.xxx - - [07/Apr/2020:21:01:50 +0200] "GET /path1/path2/?rest HTTP/1.1" 401 693 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/Safari"
/ path1 / path2 / это root веб-сайта
В качестве временного решения я разрешил любой доступ для определенного IP-адреса - но это не тот способ, которым это должно работать
SetEnvIf Remote_Addr xxx.xxx.xxx.xxx let_me_in
Как можно Я получаю, что SetEnvIf Request_URI работает правильно для этого конкретного случая?