除资产外,如何使用mod_rewrite重定向到index.php?

时间:2009-06-12 21:02:37

标签: mod-rewrite

我想让mod_rewrite对任何不存在的文件名生效,除非该文件名以js,css,gif等结尾,所以那些将返回常规404 ...

我试过了:

RewriteCond %{REQUEST_FILENAME} \.(js|ico|gif|jpg|png|css|pdf)$ [OR]
RewriteCond %{REQUEST_FILENAME} favicon.ico$ [OR]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)$ /index.php/$1 [L]

我在网上找到的地方,但它似乎没有用。我的不存在的JS文件仍然被路由到我的index.php文件。

3 个答案:

答案 0 :(得分:2)

尝试此规则:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !.*\.(js|ico|gif|jpg|png|css|pdf)$ /index.php%{REQUEST_URI} [L]

答案 1 :(得分:0)

您是否添加了.htaccess文件之前的命令? 喜欢这条线?

RewriteEngine On

答案 2 :(得分:0)

如果您不仅可以使用.js文件,还可以使用.Js或.JS或.jS文件,则可能需要使用第一行的[NC]标志...