如何在.htaccess中模拟[L]

时间:2010-02-08 12:28:52

标签: apache mod-rewrite

我有一个带有许多RewriteRules的.htaccess文件。

如何排除已有的RewriteCond / RewriteRule对现有文件和目录?

此:

RewriteCond %{REQUEST_FILENAME} -f 
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .*  - [F,L]  
根据{{​​3}}

无法可靠地运作

  <。>在.htaccess上下文中,[L]不会强制mod_rewrite停止。它将继续触发内部子请求:

我该如何使这项工作? 或者,如果条件适用,是否像这样的控制结构,请通过这个规则块,否则跳过并转到mod_rewrite中的

1 个答案:

答案 0 :(得分:1)

您的规则存在的问题是无法同时满足这两个条件,因为常规文件(-f)也不能是目录(-d)。试试这个:

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]