我需要首先将特定的http网址重定向到其等效的https,然后再转到完全不同的https网址(不要问为什么我不能直接将原始http重定向到最终的https网址,这就是客户想要的,客户永远是对的!)。此外,我还需要能够将原始https重定向到不同的https。
所以,我需要的是能够重定向http://foo.bar.com => https://foo.bar.com然后https://foo.bar.com => https://another.foobar.com,以及重定向https://foo.bar.com => https://another.foobar.com
目前仅重定向https://foo.bar.com => https://another.foobar.com我正在使用它:
"dependencies": {
"package_name": "git+https://github.com/your_username/forked_repository.git"
}
在端口443上进行初始绑定,我知道将http重定向到https我会使用:
acl is_new_portal hdr(host) -i foo.bar.com
redirect location https://another.foobar.com code 302 if is_new_portal
(使用代码302而不是301,因为最终将删除另一个.foobar.com,因此我不希望重定向永久缓存在客户端的浏览器中)
但是我需要能够进行两次重新定位,而且我不确定你们如何将两者结合起来?
答案 0 :(得分:0)
我不确定您的问题是否与绑定或ACL有关。您已经拥有了问题的所有答案。您可以将它们包装在一个简单的前端:
frontend main
bind :80
bind :443 ssl crt yourCertFile
acl is_new_portal hdr(host) -i foo.bar.com
redirect scheme https code 302 if !{ ssl_fc } is_new_portal
redirect location https://another.foobar.com code 302 if { ssl_fc } is_new_portal
http-response set-header Strict-Transport-Security max-age=31536000;\ includeSubDomains;\ preload; if { ssl_fc }
if之后的ACL之间的空格被解释为AND。所以你会得到类似的东西: