From f16c6564334e1a0d4ff94b7de980fc429309c749 Mon Sep 17 00:00:00 2001 From: Daniel Scherzer Date: Tue, 2 Jun 2026 14:25:32 -0700 Subject: [PATCH 1/2] [Traefik] Add support for `www` redirects --- docker-compose.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 8a0eeb6..c7179f7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,11 +11,20 @@ services: DEPLOYMENT_HOST_NAME: "${DEPLOYMENT_HOST_NAME}" labels: - traefik.enable=true + # For primary domain name - traefik.http.routers.${COMPOSE_PROJECT_NAME}.rule=Host(`${DEPLOYMENT_HOST_NAME}`) - traefik.http.routers.${COMPOSE_PROJECT_NAME}.entrypoints=websecure - traefik.http.routers.${COMPOSE_PROJECT_NAME}.tls=true - traefik.http.routers.${COMPOSE_PROJECT_NAME}.tls.certresolver=letsencrypt - traefik.http.services.${COMPOSE_PROJECT_NAME}.loadbalancer.server.port=80 + # Redirect from www + - traefik.http.routers.${COMPOSE_PROJECT_NAME}-www.rule=Host(`www.${DEPLOYMENT_HOST_NAME}`) + - traefik.http.routers.${COMPOSE_PROJECT_NAME}-www.entrypoints=websecure + - traefik.http.routers.${COMPOSE_PROJECT_NAME}-www.tls=true + - traefik.http.routers.${COMPOSE_PROJECT_NAME}-www.tls.certresolver=letsencrypt + - traefik.http.routers.${COMPOSE_PROJECT_NAME}-www.middlewares=www_redirect_${COMPOSE_PROJECT_NAME} + - traefik.http.middlewares.www_redirect_${COMPOSE_PROJECT_NAME}.redirectregex.regex=^https?://www\.(.*) + - traefik.http.middlewares.www_redirect_${COMPOSE_PROJECT_NAME}.redirectregex.replacement=^https://$${1} networks: - my-traefik-net From ac13b55bf29c20a7311f40f4de7f0028a4965276 Mon Sep 17 00:00:00 2001 From: Daniel Scherzer Date: Tue, 2 Jun 2026 14:38:42 -0700 Subject: [PATCH 2/2] Permanent, extra ^ --- docker-compose.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index c7179f7..80888b9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -24,7 +24,8 @@ services: - traefik.http.routers.${COMPOSE_PROJECT_NAME}-www.tls.certresolver=letsencrypt - traefik.http.routers.${COMPOSE_PROJECT_NAME}-www.middlewares=www_redirect_${COMPOSE_PROJECT_NAME} - traefik.http.middlewares.www_redirect_${COMPOSE_PROJECT_NAME}.redirectregex.regex=^https?://www\.(.*) - - traefik.http.middlewares.www_redirect_${COMPOSE_PROJECT_NAME}.redirectregex.replacement=^https://$${1} + - traefik.http.middlewares.www_redirect_${COMPOSE_PROJECT_NAME}.redirectregex.replacement=https://$${1} + - traefik.http.middlewares.www_redirect_${COMPOSE_PROJECT_NAME}.redirectregex.permanent=true networks: - my-traefik-net