修改Apache mod_rewrite RewriteRule使其不作用于物理目录

时间:2020-03-06 14:38:51  来源:igfitidea点击:

我有这个RewriteRule效果很好:-)

RewriteRule ^([^/]*)/$ /script.html?id= [L]

关于此规则的坏事是它也匹配我不需要的物理目录。

我该如何告诉mod_rewrite忽略物理目录并仅在不存在匹配的目录时应用上述规则?

解决方案

看一看RewriteCond。将以下内容放在规则前,以免除目录和文件

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/$ /script.html?id= [L]