.htaccess重写规则不适用于我的css或images目录,但它适用于我的javascript?

时间:2012-10-20 21:56:24

标签: apache .htaccess localhost

我正在尝试调试www.240list.com的.htaccess文件。

基本上,这是我的htaccess文件用于我的mvc /目录重写文件而不是。

Options +FollowSymlinks
RewriteEngine on

RewriteCond %{HTTP_HOST} ^[^\.]+\.[^\.]+$
RewriteRule ^.*$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .* - [L]

RewriteRule ^(\d+\/)?Css/(.*)$ Resources/css/$2 [L]
RewriteRule ^(\d+\/)?Javascript/(.*)$ Libs/Javascript/$2 [L]
RewriteRule ^(\d+\/)?Images/(.*)$ Resources/images/$2 [L]
RewriteRule .*$ App/index.php [L]

网站没有加载我的css或图片,如果你通过重写网址转到图像的位置,例如http://www.240list.com/Images/Logo.png,它会重定向到我的index.php,因为它正在加载mvc框架的自动加载器,如果前3个目录重写规则不匹配则会发生。

奇怪的是,一切都在使用我的Uniserver上的htaccess我在本地主机上用于开发,但是当在hostgator上时,css和images目录还没有工作,JavaScript就是。如果重要的话,它们都具有相同的目录权限。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

似乎不起作用,因为它区分大小写。

试试这个:

RewriteRule ^(\d+\/)?Css/(.*)$ Resources/Css/$2 [L]
RewriteRule ^(\d+\/)?Javascript/(.*)$ Libs/Javascript/$2 [L]
RewriteRule ^(\d+\/)?Images/(.*)$ Resources/Images/$2 [L]
RewriteRule .*$ App/index.php [L]

为了记录,我总是避免在网址和系统路径中使用大写字母来避免这种错误。

修改 我刚才注意到Javascript在Libs中,其他的都在Resources中。是不是?