Mod rewrite mod_rewrite-除静态文件夹外的所有索引

Mod rewrite mod_rewrite-除静态文件夹外的所有索引,mod-rewrite,url-rewriting,Mod Rewrite,Url Rewriting,我一直在努力,但找不到解决办法,这肯定很容易。我有规则 RewriteEngine on RewriteRule (.*) index.php [L] 所以它将所有URL重定向到index.php,现在我希望所有的文件都能重定向到静态文件夹中的这个,所以像domain.com/static/…这样的URL。。。不会被重定向。例如,我试过: RewriteEngine on RewriteCond %{REQUEST_URI} !^static$ RewriteRule (.*) index.p

我一直在努力,但找不到解决办法,这肯定很容易。我有规则

RewriteEngine on
RewriteRule (.*) index.php [L]
所以它将所有URL重定向到index.php,现在我希望所有的文件都能重定向到静态文件夹中的这个,所以像domain.com/static/…这样的URL。。。不会被重定向。例如,我试过:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^static$
RewriteRule (.*) index.php [L]


还有其他一些变化,但似乎没有任何效果…

在您的正则表达式中,使用负面展望

RewriteEngine on
RewriteCond %{REQUEST_URI} ^(?!/static/).+ [NC]
RewriteRule (.*) index.php [L]

我觉得你的上一个规则集是正确的。你尝试过[R,L]而不是[L]吗?我在IIS服务器上用ISAPI插件对它进行了测试,用于mod_rewrite。它应该与apache的语法相同。如果这对你没有好处,试着不要在“static”前面加斜杠。如果仍然不好,我会收回我的答案:-(哦,不管我的重写规则是否有效,我很确定你的服务器讨厌你。好的,它有效:D唯一让我困扰的是,当静态文件夹中的这个文件存在时,它有效,但如果不存在,它会重定向到index.php。我认为在不存在的文件情况下应该是404或其他什么。。。
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(?!/static/).+ [NC]
RewriteRule (.*) index.php [L]