我在创建无 www 重定向时遇到了麻烦。 我尝试了对其他人有用的例子,但就我而言,什么也没发生。 有人可以帮助我吗? 我正在使用 Kubernetes 1.13.5 和 traefik:1.7.8-alpine。 配置如下所示。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/redirect-entry-point: https
traefik.ingress.kubernetes.io/redirect-permanent: "true"
traefik.ingress.kubernetes.io/redirect-regex: ^https?://xn--neophytenbekmpfung-wtb.ch/?(.*)
traefik.ingress.kubernetes.io/redirect-replacement: https://www.xn--neophytenbekmpfung-wtb.ch$${1}
traefik.ingress.kubernetes.io/redirect-permanent: "true"
ingress.kubernetes.io/protocol: http
traefik.backend.loadbalancer.sticky: "true"
traefik.ingress.kubernetes.io/affinity: "true"
traefik.ingress.kubernetes.io/session-cookie-name: neophytenbekaempfung-sticky
traefik.ingress.kubernetes.io/error-pages: |-
fives:
status:
- "500-600"
backend: global-default-backend
query: "/500s.html"
fouro3:
status:
- "403"
backend: global-default-backend
query: "/403.html"
fours:
status:
- "400-499"
backend: global-default-backend
query: "/400s.html"
name: neophytenbekaempfung-sitebuilder-ingress
namespace: sitebuilder
spec:
rules:
- host: xn--neophytenbekmpfung-wtb.ch
http:
paths:
- backend:
serviceName: sitebuilder-app-service
servicePort: 80
path: /
- host: www.xn--neophytenbekmpfung-wtb.ch
http:
paths:
- backend:
serviceName: sitebuilder-app-service
servicePort: 80
path: /
亲切问候 格拉德隆
好的。 问题的原因很简单。 你不能使用
traefik.ingress.kubernetes.io/redirect-entry-point: https
traefik.ingress.kubernetes.io/redirect-permanent: "true"
和
traefik.ingress.kubernetes.io/redirect-regex: ^https?://xn--neophytenbekmpfung-wtb.ch/?(.*)
traefik.ingress.kubernetes.io/redirect-replacement: https://www.xn--neophytenbekmpfung-wtb.ch$${1}
traefik.ingress.kubernetes.io/redirect-permanent: "true"
一起。 原因可以在这里找到: https://github.com/containous/traefik/blob/v1.7/provider/kubernetes/kubernetes.go#L992
此特殊案例的解决方案如下所示。
traefik.ingress.kubernetes.io/redirect-regex: ^http://.*?xn--neophytenbekmpfung-wtb.ch/|^https://xn--neophytenbekmpfung-wtb.ch/(.*)
traefik.ingress.kubernetes.io/redirect-replacement: https://www.xn--neophytenbekmpfung-wtb.ch/$1
traefik.ingress.kubernetes.io/redirect-permanent: "true"
我需要使 none www 到 www 但也 http 到 https,通过这个配置,我能够同时实现这两个目标。
希望这有助于 ohters 面对同样的问题。