我正在根据 acl 条件重定向到某个域,但我希望用户最终取决于http
或https
取决于他们请求的方案/协议。我已经设法用下面显示的 2 行来做到这一点,但我想将它们转换为 1 行:
http-request redirect code 301 location http://www.example.com%[url] if acl_whatever !{ ssl_fc }
http-request redirect code 301 location https://www.example.com%[url] if acl_whatever { ssl_fc }
理想情况下,我想重定向到类似%[scheme]://www.example.com%[url]
但%[scheme]
不存在的东西。
是否有可以返回的变量或函数,http
或者https
我不必重复规则两次?也许通过某种方式设置一个包含该方案的变量,或者通过使用其值为%[ssl_fc]
0 或 1?
您可以使用
http-request set-var
and执行此操作%[var(name)]
:作为补充:
如果响应中需要请求模式,则
txn
必须使用范围而不是req
.例如: