Mod rewrite 如何使用mod_rewrite重定向到index.php(资产除外)?

Mod rewrite 如何使用mod_rewrite重定向到index.php(资产除外)?,mod-rewrite,Mod Rewrite,我想让mod_重写对任何不存在的文件名生效,除非该文件名以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_FILE

我想让mod_重写对任何不存在的文件名生效,除非该文件名以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文件。

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

RewriteEngine On
试试这个规则:

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

如果您不仅可以有.js文件,还可以有.js或.js或.js文件,那么您可能希望在第一行使用[NC]标志…

显然…如果没有这个标志,mod_rewrite根本不起作用!也许这是我的服务器设置…我在另一台服务器上尝试了它,它就像广告一样工作。