如果ENV为true或已定义(如果未定义,则假定为false),则需要运行一组RewriteCond语句。我一直在尝试用途:
RewriteCond %{ENV:IS_MOBILE} ^true$ RewriteCond ...
字符串(不确定是否有效)
RewriteCond %{ENV:IS_MOBILE} !=true RewriteCond...
型但似乎都不起作用。有什么办法吗?
knpiaxh11#
这里有一个真实的例子,应该可以帮助你找到解决方案:如果主机以“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是equals,正好等于字符串true,你假设它是“true”:
true
RewriteCond %{ENV:IS_MOBILE} =true RewriteCond...
型希望这对你有帮助。
qvtsj1bj2#
我认为您需要首先使用IfDefine Package 代码
IfDefine
<IfDefine %{ENV:IS_MOBILE}> RewriteCond %{ENV:IS_MOBILE} true </IfDefine>
字符串
2条答案
按热度按时间knpiaxh11#
这里有一个真实的例子,应该可以帮助你找到解决方案:
如果主机以“s”或“static”开头,则创建一个名为“STATIC”的环境变量并将其设置为“1”:
字符串
那么你可能会寻找:如果我的主机是“静态的”,那么如果文件被认为是“静态的”(img等),然后停止:
型
现在如果你想确定这个变量不存在,只需检查它是否为空。下面是我的规则,就在前面的规则之后:它检查变量是否不为空,如果是,则会出现错误= 404(模拟“未找到”):
型
在你的例子中,如果你的env不是空的,你假设它是真的:
型
在你的例子中,如果你的env是equals,正好等于字符串
true
,你假设它是“true”:型
希望这对你有帮助。
qvtsj1bj2#
我认为您需要首先使用
IfDefine
Package 代码字符串