我有一个带有许多RewriteRules的.htaccess文件。
如何排除已有的RewriteCond
/ RewriteRule
对现有文件和目录?
此:
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [F,L]
根据{{3}} ,无法可靠地运作
<。>在.htaccess上下文中,[L]不会强制mod_rewrite停止。它将继续触发内部子请求:
我该如何使这项工作? 或者,如果条件适用,是否像这样的控制结构,请通过这个规则块,否则跳过并转到mod_rewrite中的?
答案 0 :(得分:1)
您的规则存在的问题是无法同时满足这两个条件,因为常规文件(-f
)也不能是目录(-d
)。试试这个:
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]