У меня на сервере стоит Apache 2.4.
Настроен сайт который закрыт для общего посещения через запрос пароля (Basic Auth).
Задача: для определенных путей не запрашивать пароль.
После прочтения
вот этой статьи мой .htaccess выглядит так:
Authtype Basic
AuthName "Test server"
AuthUserFile /xxxx/.htpasswd
<RequireAny>
Require expr %{REQUEST_URI} =~ m#^/dir1/.*#
Require expr %{REQUEST_URI} =~ m#^/dir2/.*#
Require valid-user
</RequireAny>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
Проблема только в том, что директория
dir1 действительно существует в файловой системе и поэтому конфигурация нормально срабатывает. Однако директории
dir2 не существует, и поэтому этот путь уже перенаправляется на скрипт как параметр через ModRewrite, а уже внутри скрипта происходит раутинг. И в данном случае почемуто конфигурация .htaccess не срабатывает и для данного пути всеравно запрашивается пароль.
Каж эту проблему решить?