Задать вопрос
privedentsev
@privedentsev

Почему у меня не работает редирект с www на без www в Traefik?

У меня наблюдается проблема при редиректах с www.
Если я захожу по адресу www.traefik-server.mystudio.studio, меня направляет на https://www.traefik-server.mystudio.studio и происходит ошибка, как это исправить? Нужно чтобы был редирект на https://traefik-server.mystudio.studio.

Спасибо!

services:
  traefik:
    image: traefik:v3.3.5
    container_name: traefik
    command:
      - "--api.dashboard=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--entrypoints.web.http.redirections.entrypoint.to=websecure"
      - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
      - "--entrypoints.web.http.redirections.entrypoint.permanent=true"
      - "--certificatesresolvers.myresolver.acme.email=mymail@yandex.ru"
      - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
      - "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
    labels:
      - "traefik.enable=true"

      - "traefik.http.middlewares.redirect-www-to-root.redirectregex.regex=^https?://www\\.(.+)"
      - "traefik.http.middlewares.redirect-www-to-root.redirectregex.replacement=https://$1"
      - "traefik.http.middlewares.redirect-www-to-root.redirectregex.permanent=true"

      - "traefik.http.routers.redirect-www.rule=HostRegexp(`www.{domain:[^/]+}`)"
      - "traefik.http.routers.redirect-www.entrypoints=web"
      - "traefik.http.routers.redirect-www.middlewares=redirect-www-to-root"
      - "traefik.http.routers.redirect-www.tls.certresolver=myresolver"

      - "traefik.http.routers.traefik.rule=Host(`traefik-server.mystudio.studio`)"
      - "traefik.http.routers.traefik.service=api@internal"
      - "traefik.http.routers.traefik.entrypoints=websecure"
      - "traefik.http.routers.traefik.tls.certresolver=myresolver"
      - "traefik.http.routers.traefik.middlewares=auth"
      - "traefik.http.middlewares.auth.basicauth.users=admin:$$apr.....K.k/"
      - "traefik.http.services.traefik.loadbalancer.server.port=8080"
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - traefik_certificates:/letsencrypt
    networks:
      - traefik_network

volumes:
  traefik_certificates:
    name: traefik_certificates

networks:
  traefik_network:
    name: traefik_network
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
privedentsev
@privedentsev Автор вопроса
Нашел такой вариант глобальный http -> https и www -> non-www

На traefik:v3.3.5 все работает, но не глобально, а на уровне сервиса.

Если кто-то найдет реализацию на глобальном уровне, отпишитесь.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Geminix
@Geminix
Фуллстек nuxt, .net разработчик
deepseek выдал такой конфиг для вашей проблемы
diff configs
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы