2010-06-09 3 views
1

Я работаю над проектом Zend Framework, где я наткнулся на проблему. Проблема возникает из-за того, что модули являются гражданами второго сорта в Zend Framework. В моем проекте я хотел бы, чтобы для каждого модуля была папка, содержащая файлы, к которым нужно получить доступ извне - файлы, такие как таблицы стилей, javascripts и изображения.Apache - «динамическое» правило перезаписи

Теперь, как это сделать. С проектом Zend Framework У меня есть структура папок, которая выглядит следующим образом:

  • применение/
    • модули/
      • moduleOne/
        • общественности/
          • таблицы стилей .css
      • moduleTwo/
      • moduleThree/
  • общественных/
    • index.php

Стандарт .h taccess файл находится в общественной/ папке держит это:

SetEnv APPLICATION_ENV development 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

Как это работает, является то, что проект Apache DocumentRoot является публичными/ папку . Все запросы перенаправляются через файл index.php, в который входит компонент маршрутизатора Zend Framework. Теперь я ни в коем случае не специалист по Apache или mod_rewrite, так что простите меня, если это просто глупо. Я предполагаю, что я реализую дополнительный шаг в существующем правиле перезаписи, чтобы, если я запрошу http://project/public/moduleOne/stylesheet.css, он, например, решит /var/www/project/application/modules/moduleOne/public/stylesheet.css.

Таким образом, шаги, которые необходимо выполнить, это проверить, является ли первый элемент в URI public/, если он есть, мы берем следующий сегмент в качестве имени модуля и используем его в пути, который мы пытаемся для разрешения и попытки обслуживания файла.

Возможно ли это, или у кого есть лучшее предложение?

Спасибо за ваше время Кристиан Расмуссен

ответ

0

С только mod_rewrite вы не можете запросить файлы вне корневого каталога документов. Таким образом, единственное решение - использовать символическую ссылку, расположенную в корневом каталоге документа, и указывать на каталог модулей.

+0

Привет, Ололо, извините за то, что забыли об этом вопросе. Вы действительно были прав в отношении доступа к ресурсам вне корня документа. Я искренне благодарю вас за ваш ответ. –