基于URL的HAProxy路由
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于URL的HAProxy路由相关的知识,希望对你有一定的参考价值。
场景:如果url是http://domain
或http://domain/web
,则不应该有重定向。对于其他任何事情,比如http://domain/abc
或http://domain/xyz
,应该有重定向到http://domain2
。
这是我尝试过的,但它只适用于http://domain/web
。如果网址是http://domain
,它仍然会重定向到http://domain2
。
acl is_root path -i
acl missing_slash path_reg ^/*/[^/]*$$
acl isweb path_beg /web
http-request set-header X-Location-Path %[capture.req.uri] if !isweb !is_root !missing_slash
http-request replace-header X-Location-Path [^/]+/(.*) 1 if !isweb !is_root !missing_slash
http-request redirect code 301 location https://www.domain2.com%[hdr(X-Location-Path)] if !isweb !is_root !missing_slash
答案
匹配字符串/
。
acl is_root path -m str /
请求URI实际上永远不会是HTTP中的空字符串。浏览器将始终发送GET / HTTP/1.1
,无论地址栏是否实际显示主机名后面的/
。
以上是关于基于URL的HAProxy路由的主要内容,如果未能解决你的问题,请参考以下文章
如何在Angular2 rc3路由中处理来自oauth重定向url的哈希片段