39

刚刚发现这个 .htaccess 重写代码

RewriteEngine on
RewriteCond %{HTTP_HOST} ^my.domain.com$ [NC,OR]
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]

我想知道“OR”标志的目的是什么。已经检查了文档http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteflags但可以找到任何信息。

有任何想法吗?

4

2 回答 2

84

来自http://httpd.apache.org/docs/current/mod/mod_rewrite.html

ornext|OR(或下一个条件)使用它来将规则条件与本地 OR 而不是隐式 AND 组合。典型例子:

RewriteCond %{REMOTE_HOST}  ^host1  [OR]
RewriteCond %{REMOTE_HOST}  ^host2  [OR]
RewriteCond %{REMOTE_HOST}  ^host3
RewriteRule ...some special stuff for any of these hosts...
于 2012-09-18T20:54:43.077 回答
2

[OR] 用于当您想要一个 OR 另一个 OR 另一个条件触发重写时。否则,默认行为是“与”所有 RewriteConds 必须为真才能触发规则。

于 2019-06-13T12:17:39.890 回答