我正在编写一个迷你MVC应用程序。应用程序架构:
动作/ 模板/ 现场/ 应用程序/ 风格/ 图片/ 脚本/
到目前为止,我已经让控制器正常工作,接收所有请求。但是,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:为了完成而添加了目录标记。
答案 0 :(得分:4)
我在这里切换了一些东西 - 这是基于我运行的每个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]