I have some domains and want to use basic auth on them.
Here is my relevant part of docker-compose.yml:
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.staging-http.rule=
Host(`domain-1.staging.tld`) ||
Host(`domain-2.staging.tld`) ||
Host(`domain-3.staging.tld`) ||
Host(`domain-4.staging.tld`) ||
Host(`domain-5.staging.tld`) ||
Host(`domain-6.staging.tld`) ||
Host(`domain-7.staging.tld`)"
- "traefik.http.routers.staging-http.entrypoints=http"
- "traefik.http.routers.staging-http.service=staging"
- "traefik.http.routers.staging-http.middlewares=https-redirect@file"
- "traefik.http.routers.staging.rule=
Host(`domain-1.staging.tld`) ||
Host(`domain-2.staging.tld`) ||
Host(`domain-3.staging.tld`) ||
Host(`domain-4.staging.tld`) ||
Host(`domain-5.staging.tld`) ||
Host(`domain-6.staging.tld`) ||
Host(`domain-7.staging.tld`)"
- "traefik.http.routers.staging.entrypoints=https"
- "traefik.http.routers.staging.service=staging"
- "traefik.http.routers.staging.middlewares=basic-auth@file,https-redirect@file"
- "traefik.http.routers.staging.tls=true"
- "traefik.http.routers.staging.tls.certresolver=letsencrypt"
- "traefik.http.routers.staging.tls.options=default"
- "traefik.http.routers.staging-no-auth.rule=(Host(`domain-7.staging.tld`) && PathPrefix(`/api/`))"
- "traefik.http.routers.staging-no-auth.entrypoints=http,https"
- "traefik.http.services.staging.loadbalancer.server.port=80"
- "traefik.http.services.staging.loadbalancer.passhostheader=true"
So, I would like to use basic auth for all of my staging sites but I would like to add an exception for domain-7.staging.tld on path "/api/*".
How can I do that? What's wrong with my config?
Thanks!