.htaccess - 如何根据环境变量设置自定义标头?

4
如何使用If/Else指令根据环境变量通过.htaccess设置自定义标头?
#Refresh-page
<If "%{ENV:DOCUMENT} == 'loading'">
    Header set Refresh "3"
</If>

我将尝试使用Apache 2.4文档中描述的语法。 http://httpd.apache.org/docs/2.4/mod/core.html#if 测试1 根据anubhava的答案。
RewriteCond %{ENV:DOCUMENT} ^widget$
RewriteRule ^.* - [E=REFRESH:1]

#refresh page
Header set Refresh "3" env=REFRESH

RewriteCond %{ENV:REFRESH} ^1$
RewriteRule ^.* loading.html [L]
1个回答

3

修改环境变量以存储0或1,然后您可以像这样使用Header set

您可以使用:

# set DOCUMENT=widget (remove if you are already setting this)
SetEnvIf Host ^ DOCUMENT=widget

# set isDoc=1 if DOCUMENT == widget
SetEnvIf DOCUMENT widget isDoc

# set header only if isDoc == 1
Header set Refresh "3" env=isDoc

请查看此文档以获取setenvif示例:点击此处 - anubhava
感谢Anubhava的建议,我正在根据您的建议编辑问题。 - RafaSashi
请您能否审核一下test1代码,并告诉我出了什么问题? - RafaSashi
1
实际上,您必须使用SetEnvIf来创建新的环境变量(因为mod_rewrite在链中运行得更晚),而不是使用RewriteRule。我将在几分钟内更新答案。 - anubhava
让我们在聊天中继续这个讨论 - RafaSashi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接