У меня следующая конфигурация сайта
<Location />
AuthUserFile /path/.htpasswd
AuthName "Restricted Area"
AuthType Basic
require valid-user
</Location>
который ограничивает доступ ко всем локациям. Теперь я хочу исключить сказать media/
<Location /media>
Require all granted
</Location>
а также upload/
который находится в другом каталоге
Alias /upload/files/ /another/path/upload/files/
<Directory "/another/path/upload/files/">
Options None
AllowOverride None
ForceType text/plain
Require all granted
</Directory>
К сожалению, он все еще предлагает мне пройти аутентификацию.
Вы можете добавить исключения следующим образом:
<Directory /media>
Options none
AllowOverride none
Require all granted
</Directory>
После применения конфигурации необходимо перезапустить службу apache.
Я нашел способ добиться этого
<Location />
AuthUserFile /path/.htpasswd
AuthName "Restricted Area"
AuthType Basic
Require expr %{REQUEST_URI} =~ m#^/media#
Require expr %{REQUEST_URI} =~ m#^/upload/files/#
Require valid-user
</Location>
Могут быть и другие варианты.
Поскольку Location / media появилось после Location /, он унаследовал корни AuthType. Вы должны иметь возможность отменить это:
<Location /media>
AuthType None
Require all granted
</Location>