Apache Rewrite, исключая каталог активов - PullRequest
2 голосов
/ 23 апреля 2010

Я пишу мини-приложение MVC.Архитектура приложения:

actions / templates / site / app / styles / images / scripts /

Пока что у меня контроллер работает нормально, принимая все запросы.Тем не менее, файлы JavaScript не отображаются должным образом в браузере;Я получаю 404 Not Found при попытке загрузить файл в браузере.

Вот моя текущая конфигурация каталога в файле vhost:

<Directory "/path/to/apps/ecatalogue">
DirectoryIndex index.php
RewriteEngine On
RewriteBase /apps/ecatalogue
RewriteRule ^scripts/(.*) - [NC,L] <--- Rule not working
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [NC,L,QSA]
</Directory>

Я могу подтвердить все остальноеработает;Мне просто нужен apache для игнорирования чего-либо в скриптах, чтобы файл мог загружаться нормально, без обработки контроллером.

Ваша помощь приветствуется.

Обновление I: добавлен тег Directory для завершения.

1 Ответ

4 голосов
/ 23 апреля 2010

Я переключил пару вещей здесь - это основано на правилах перезаписи, которые я использую почти для каждого приложения MVC, которое я запускаю. Это вытекает из некоторых рекомендаций из документации Zend Framework.

DirectoryIndex index.php

RewriteEngine On
RewriteBase /apps/ecatalogue

# If it's a file/directory/symlink, serve it.
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^.*$ - [NC,L]

# Otherwise let's go MVC
RewriteRule ^.*$ index.php [NC,L]
...