htaccess /Сопоставление файлов / Сопоставление директорий allow.jpg.html и каталоги
Навигация на моем сайте выглядит следующим образом:
www.example.com/pictures/cars/
и т.д.
Я пытаюсь разрешить только .html
и .jpg
в этих папках, но мне также нужно, чтобы каталог был доступен
Order allow,deny
Deny from all
<FilesMatch ".*\.(jpg|html)$">
Order allow,deny
Allow from all
</FilesMatch>
Этот код работает, но содержимое теперь доступно только при попытке доступа
https://www.example.com/pictures/cars/index.html
И https://www.example.com/pictures/cars/
показывает ошибку 403
Может ли кто-нибудь помочь мне с этим?
1 answers
Директива <FilesMatch>
соответствует физическим файлам. При запросе только каталога "файл" по существу пустой. Это несмотря на то, что Apache затем делает внутренний подзапрос для документа индекса каталога (т.Е. index.html
в данном случае). Этот подзапрос, по-видимому, возникает после обработки директивы <FilesMatch>
.
Итак, чтобы разрешить прямой доступ к каталогам , вы можете изменить существующее регулярное выражение, чтобы разрешить "пустой" файлы. Например:
<FilesMatch "^(.+\.(jpg|html))?$">
Это, по сути, делает имя файла необязательным.
В сторону: <DirectoryMatch>
директивы разрешены только в конфигурации сервера (не .htaccess
). .htaccess
файлы по сути такие же, как оболочка <Directory>
, но в вашем веб-пространстве.