вход переписать домен www в URL без www - PullRequest
1 голос
/ 04 ноября 2019

Я пытаюсь перенаправить свой домен "www.test.example.com" на test.example.com

, во входе я добавил аннотацию

nginx.ingress.kubernetes.io/configuration-snippet: |
      if ($host = 'www.test.wotnot.io' ) {
          rewrite ^/(.*)$ https://app.test.wotnot.io/$1 permanent;
      }

, она не работает должным образом.

Для тестирования я должен попробовать это

nginx.ingress.kubernetes.io/configuration-snippet: |
      if ($host = 'test.example.com' ) {
          rewrite ^/(.*)$ https://google.com/$1 permanent;
      }

, который работает нормально.

Мой сайт работает с test.example.com и сертификатом ssl.

Весь вход

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    certmanager.k8s.io/cluster-issuer: wordpress-staging
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
    #nginx.ingress.kubernetes.io/configuration-snippet: |
      #if ($host = 'www.test.wotnot.io' ) {
        #  rewrite ^/(.*)$ https://test.example.io/$1 permanent;
      #}
  name: wordpress-staging-ingress
spec:
  rules:
  - host: test.example.io
    http:
      paths:
      - backend:
          serviceName: wordpress-site
          servicePort: 80
        path: /
  tls:
  - hosts:
    - test.example.io
    secretName: wordpress-staging

1 Ответ

1 голос
/ 04 ноября 2019

Вход имеет аннотацию nginx.ingress.kubernetes.io/from-to-www-redirect: "true", которая уже обрабатывает это:

В некоторых случаях требуется перенаправление с www.domain.com на domain.com или наоборот. Чтобы включить эту функцию, используйте аннотацию nginx.ingress.kubernetes.io/from-to-www-redirect: "true"

Внимание : для перенаправлений HTTPS на HTTPS обязательно, SSL-сертификат, определенный в секретном разделе, расположенном в разделе TLS входного файла, содержит как полное доменное имяв обычном названии сертификата.

Лучше использовать его вместо того, чтобы бороться / подправлять аннотацию configuration-snippet.

...