场景:如果网址为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
答案 0 :(得分:0)
匹配字符串/
。
acl is_root path -m str /
请求URI实际上永远不会是HTTP中的空字符串。无论地址栏是否实际显示主机名后面的GET / HTTP/1.1
,浏览器都会始终发送/
。