2009-06-12 122 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文件...