.htaccess - 重写对index.php的所有请求,但某些目录中的文件除外

时间:2015-01-22 14:42:18

标签: php apache .htaccess mod-rewrite

实际上我找到了解决方案,但是因为.htaccess和mod_rewrite总是令人困惑,我要求验证:

我想重写index.php的所有流量,除了那些请求转到某些目录中的现有文件的请求。这是正确的解决方案吗? ...

RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !css/(.*)|js/(.*)|img/(.*)|media/(.*)
RewriteRule . index.php

我放弃了常用的

RewriteCond %{REQUEST_FILENAME} !-d

因为我不想拥有目录索引,并且没有带index.html或index.php的子目录,所以我想加载它。

毕竟这看起来像是一个非常简单,安全和通用的设置,所以我问自己,为什么我以前从未见过它。

1 个答案:

答案 0 :(得分:2)

你需要有这样的条件:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/(css|js|img|media)/ [NC]
RewriteRule . index.php [L]