Как я могу запретить всем, кроме одного имени каталога с .htaccess? - PullRequest
3 голосов
/ 29 июня 2009

У меня есть этот файл .htaccess, где я запрещаю пользователям физически получать доступ к файлам из браузера (где они должны загружаться только через систему)

Options -Indexes
Order deny,allow
deny from all

У меня есть одна проблема, иногда я загружаю файлы через AJAX, и там я получаю 403 Forbidden. У меня мало опыта с apache mod_access. Я читал директиву каталога , так как все мои файлы на основе AJAX находятся в одном каталоге с именем ajax.

Но дело в том, что мне нужно запретить доступ ко всем каталогам, кроме тех, которые называются ajax, и мои навыки регулярных выражений отсутствуют.

Пример структуры каталогов такой:

plugins/inventory/ajax
plugins/inventory/controller
plugins/inventory/view

plugins/packages/ajax
plugins/packages/controller
plugins/packages/view

Файл .htaccess находится в каталоге плагинов.

1 Ответ

3 голосов
/ 29 июня 2009

То, что вам нужно сделать в первую очередь, является своего рода провалом архитектуры проекта. Файлы сценариев, которые никогда не должны быть доступны в Интернете, не должны находиться внутри вашего DocumentRoot.

Тем не менее, это, вероятно, будет работать:

RewriteEngine on
<DirectoryMatch "/(?!.*/ajax$)">
   Order deny,allow
   Deny from all
</DirectoryMatch>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...