如果 ENV 为真或已定义(如果未定义,则假定为假),我需要运行一组 RewriteCond 语句。我一直在尝试使用:
RewriteCond %{ENV:IS_MOBILE} ^true$
RewriteCond ...
和(不确定这是否有效)
RewriteCond %{ENV:IS_MOBILE} !=true
RewriteCond...
但似乎两者都不起作用。我有什么办法可以做到这一点?
这是一个真实的示例,可以帮助您找到解决方案:
如果主机以“s”或“static”开头,则创建一个名为“STATIC”的环境变量并将其设置为“1”:
RewriteCond %{HTTP_HOST} (s|static)\.mysite\.com$
RewriteRule (.*) - [QSA,E=STATIC:1]
然后你可能会寻找:如果我的主机是“静态的”,那么如果文件被认为是“静态的”(img 等)然后停止:
RewriteCond %{ENV:STATIC} 1
RewriteRule (.*)\.(pdf|jpg|jpeg|gif|png|ico)$ - [L]
现在,如果您想确定该变量不存在,只需检查它是否为空。这是我在上一条之后的规则:它检查变量是否不为空,如果是,则错误 = 404(模拟“未找到”):
RewriteCond %{ENV:STATIC} !^$
RewriteRule (.*) /404.php [L]
在您的情况下,如果您的 env 不为空,您认为这是真的:
RewriteCond %{ENV:IS_MOBILE} !^$
RewriteCond...
在您的情况下,如果您的 env 等于,则完全等于字符串“ true
”,您认为它是“true”:
RewriteCond %{ENV:IS_MOBILE} true
RewriteCond...
希望这可以帮助。
我认为您需要先IfDefine
使用
<IfDefine %{ENV:IS_MOBILE}>
RewriteCond %{ENV:IS_MOBILE} true
</IfDefine>