2009-06-12 76 views
1

我想有mod_rewrite生效的任何文件名不存在,除非该文件名以js,css,gif等结尾,所以那些将返回正常的404s ...我怎样才能使用mod_rewrite重定向到index.php除资产?

我试过出:

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文件。

回答

2

试试这个规则:

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

看起来貌似合理,但它似乎仍然不起作用。 – blockhead 2009-06-12 21:20:51

0

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

RewriteEngine On 
+0

很明显......如果那不是mod_rewrite根本就不起作用! – blockhead 2009-06-12 21:18:41

0

您可能需要使用[NC]标志的第一行,如果你能不仅.js文件也.JS或.JS或。 js文件...