HAProxy如何检测url是IP地址而不是域名

时间:2017-12-17 23:40:25

标签: redirect haproxy

如果用户输入http://domainname,我想重定向到http://ip address。什么是frontend规则?

例如,此规则可以查明www是否以域为前缀,如果没有重定向到www.domain.com。

http-request redirect code 301 location      \
  http://www.%[hdr(host)]%[capture.req.uri]  \
  unless { hdr_beg(host) -i www }

同样,当用户在浏览器中键入IP地址时,我想重定向到www.domain.com。

2 个答案:

答案 0 :(得分:1)

user types IP address in browser开始,这可能会有效:

 http-request redirect code 301 location http://www.example.com%[capture.req.uri] if { hdr_reg(host) -i 127.0.0.1|192.168.1.100 }`

但如果用户指定Host: example.com

,则会失败

答案 1 :(得分:0)

您可以检查Host标头值,以查看它是否与大约是IP地址的正则表达式匹配:

acl ACL_IS_IP hdr(host) -i -m reg (\d+)\.(\d+)\.(\d+)\.(\d+)
http-request redirect code 301 location https://www.example.com/ if ACL_IS_IP