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

Может ли кто-нибудь помочь мне с этим?

 2
Author: MrWhite, 2017-06-10

1 answers

Директива <FilesMatch> соответствует физическим файлам. При запросе только каталога "файл" по существу пустой. Это несмотря на то, что Apache затем делает внутренний подзапрос для документа индекса каталога (т.Е. index.html в данном случае). Этот подзапрос, по-видимому, возникает после обработки директивы <FilesMatch>.

Итак, чтобы разрешить прямой доступ к каталогам , вы можете изменить существующее регулярное выражение, чтобы разрешить "пустой" файлы. Например:

<FilesMatch "^(.+\.(jpg|html))?$">

Это, по сути, делает имя файла необязательным.


В сторону: <DirectoryMatch> директивы разрешены только в конфигурации сервера (не .htaccess). .htaccess файлы по сути такие же, как оболочка <Directory>, но в вашем веб-пространстве.

 2
Author: MrWhite, 2017-06-10 22:02:56