Zend Framework public и статичные файлы

28 Окт
2011

В продолжении заметки о «Zend Framework и baseUrl» столкнулся с еще одним моментом, когда DocumentRoot не указывает на папку public проекта.

Допустим у Вас в папке public реализована подобная структура:

public\
+ static\
+ + css\
+ + + main.css
+ + + ....
+ + img\
+ + + drfaust.ru.png
+ + js\
+ + + jquery.js
+ + + ....

В папке static находятся все статичные файлы. Так вот, при попытке открыть к примеру файл http://localhost/testproject/public/static/js/jquery.js будет получать сообщение о том, что контроллер не найден, либо 404 ошибку.

Чтобы такого не было немного изменим .htaccess в папке public:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule !\.(js|gif|jpg|png|css|txt)$ index.php [NC,L]

Т.е. находим строчку «RewriteRule ^.*$ index.php [NC,L]» и заменяем ее строчкой «RewriteRule !\.(js|gif|jpg|png|css|txt)$ index.php [NC,L]». Теперь все должно быть нормально.

Оставить комментарий или два

Наверх
Rambler's Top100