Мне нужно запретить прямой доступ ко всем папкам в определенном каталоге (* backend) за одним исключением. Есть один каталог (* загрузки), который должен быть доступен через браузер.
Макет может быть примерно таким:
*backend/
|-admin
|-system
|-themes
|-*uploads
Я знаю, что вы можете запретить любой доступ, поместив htaccess в бэкэнд со следующим:
Order Deny,Allow
Deny From All
Кроме того, вы можете переопределить это поведение, поместив другой htaccess, в данном случае в загружает, с участием:
Allow From All
Это не работает, поскольку ресурсы в темах недоступны для моих скриптов. Что было бы правильно htaccess как выглядит комбо?
[РЕДАКТИРОВАТЬ]
Я должен добиться этого с помощью htaccess, изменение http.conf не вариант.
Изменение htaccess, как показано ниже, и добавление одного файла в темы почти дает желаемый результат. Проблема в том, что: файлы под темы должны быть защищены от прямого доступа, но оставаться доступными для обслуживания веб-сайта.
бэкэнд
#backend
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from xx.xx.xx.xx
загружает
#uploads
Order Deny,Allow
Allow from all
темы
#themes
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from xx.xx.xx.xx
<Files *.*>
Order Deny,Allow
Allow From All #Here, I would need the files to not be accessible through browser.
</Files>
Попробуйте это в своем httpd.conf
(или аналогичный файл конфигурации)
<Location /backend>
Order deny,allow
deny from all
</Location>
<Location /backend/uploads>
Order allow,deny
allow from all
</Location>
Если вам нужен доступ к /backend
с самого сервера вы можете дополнительно добавить следующую строку в первом абзаце выше, запретить от всех.
allow from 127.0.0.1, <server-ext-ip>
Еще кое-что. На всякий случай важен порядок абзацев.