无操作Apache mod_重写规则

无操作Apache mod_重写规则,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我有一个.htaccess文件,如下所示: RewriteCond /question2answer/%{REQUEST_FILENAME} !-f RewriteCond /question2answer/%{REQUEST_FILENAME} !-d RewriteCond OTHER_CONDITION_1 RewriteRule RULE_1 [L] RewriteCond /question2answer/%{REQUEST_FILENAME} !-f RewriteCond /qu

我有一个
.htaccess
文件,如下所示:

RewriteCond /question2answer/%{REQUEST_FILENAME} !-f
RewriteCond /question2answer/%{REQUEST_FILENAME} !-d
RewriteCond OTHER_CONDITION_1
RewriteRule RULE_1 [L]

RewriteCond /question2answer/%{REQUEST_FILENAME} !-f
RewriteCond /question2answer/%{REQUEST_FILENAME} !-d
RewriteCond OTHER_CONDITION_2
RewriteRule RULE_2 [L]

...
德摩根定律告诉我有更好的方法:

RewriteCond /question2answer/%{REQUEST_FILENAME} -f
RewriteRule NO-OP [L]
RewriteCond /question2answer/%{REQUEST_FILENAME} -d
RewriteRule NO-OP [L]

RewriteCond OTHER_CONDITION_1
RewriteRule RULE_1 [L]

RewriteCond OTHER_CONDITION_2
RewriteRule RULE_2 [L]    

...
我可以在这里使用的禁止操作规则是什么?如果有很多,我看到的是对性能影响最小的一个。

无操作规则可以是:

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
这意味着,如果请求是针对一个文件,或者如果请求是针对一个目录,则不做任何事情(在目标URI中用
-
表示)。

参考:
重写目标“-”告诉mod_rewrite通过未更改的方式传递请求