我正在尝试设置一个路由,执行基本的 301 重定向,并支持 HTTP 和 HTTPS 请求。预期结果是请求http://subdom.domain.org或者https://subdom.domain.org将收到 301 并转发至https://othersub.domain.org/route. 实际结果是https://subdom.domain.org301 符合预期,但是http://subdom.domain.org404。通过配置,您可以看到我尝试过将请求提升到 HTTPS,希望规则能够在那里被捕获,但是根据中间件的配置方式,我希望它在任何一种情况下都能正常工作。
这是我当前的配置:
http:
routers:
subdom.domain.org:
entryPoints:
- web
- web-secure
middlewares:
- https-redirect # I've tried with this on and off
- sudbdom-redirect
service: dummy
rule: Host(`subdom.domain.org`)
tls:
certResolver: letsEncryptResolver
middlewares:
https-redirect:
redirectScheme:
scheme: https
subdom-redirect:
redirectRegex:
regex: ".*"
replacement: "https://othersub.domain.org/route"
permanent: true
services:
dummy:
loadBalancer:
servers:
- url: localhost
我最初在匹配重定向的特定正则表达式模式时遇到了麻烦,但后来我意识到我根本不需要确定模式的范围,因为我是按路由应用的,所以通配符匹配似乎在那里效果很好。任何想法或建议都值得赞赏。谢谢!