如果ENV为true或已定义(如果未定义,则假定为false),我需要运行一组RewriteCond语句。我一直在尝试使用:
RewriteCond %{ENV:IS_MOBILE} ^true$
RewriteCond ...
和(不确定这是否有效)
RewriteCond %{ENV:IS_MOBILE} !=true
RewriteCond...
但似乎都不起作用。我能以任何方式做到这一点吗?
答案 0 :(得分:11)
这是一个真实的样本,可以帮助您找到解决方案:
如果主机以“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]
在你的情况下,如果你的环境不是空的,你认为这是真的:
RewriteCond %{ENV:IS_MOBILE} !^$
RewriteCond...
在你的情况下,如果你的env是等于,完全等于字符串“true
”,你认为它是“真的”:
RewriteCond %{ENV:IS_MOBILE} true
RewriteCond...
希望这有帮助。
答案 1 :(得分:-1)
我认为您首先需要使用IfDefine
包装代码
<IfDefine %{ENV:IS_MOBILE}>
RewriteCond %{ENV:IS_MOBILE} true
</IfDefine>