Zend Framework - Запретить доступ к папкам, кроме общих папок - PullRequest
0 голосов
/ 06 мая 2010

All

У меня есть следующая структура приложения Zend:

helloworld
 - application
     - configs
     - controllers
     - models
     - layouts
 - include
 - library
 - public
    - .htaccess
    - index.php
 - design
 - .htaccess

В настоящее время, если пользователь посещает, http://localhost, мои файлы .htaccess выше, убедитесь, что запрос автоматически перенаправляется на http://localhost/public. Если пользователь посещает любую другую папку, кроме общедоступной, из адресной строки, он получает список каталогов этой папки.

Как я могу запретить пользователю доступ ко всем другим папкам, кроме общей? Я хочу, чтобы пользователь был перенаправлен в общую папку, если он посещает любую другую папку. Однако, если базовый код запрашивает что-то из других папок, (ex:) это все равно должно работать ..

Спасибо

1 Ответ

2 голосов
/ 06 мая 2010

Самый простой метод (и метод, который предназначен для использования установкой Zend Framework) - это только поместить содержимое общей папки в DocumentRoot. Все остальное должно выходить за пределы DocumentRoot.

Если вы не можете сделать это по какой-то причине, вы можете поместить .htaccess в каждый из других подкаталогов с помощью: Заказать Разрешить, Запретить Запретить от всех

Ответ на комментарий:

Ваше приложение не должно нуждаться в каталоге application / controller (или любом другом каталоге, кроме public), чтобы находиться в DocumentRoot. PHP включает может быть извне DocumentRoot (обычно).

Если вы правильно следуете типичной структуре папок приложения Zend Framework, все ресурсы, которые должны быть доступны напрямую из браузера (например, images / flash / multimedia, javascripts, css и index.php), должны находиться внутри публичный каталог.

Кроме того, что касается .htaccess, вам нужен только файл .htaccess на верхнем уровне дерева каталогов, поэтому в приведенном выше примере вы бы поместили по одному в каждое из: application, include, library и design.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...