Fixed the issue by doing this:
http:
routers:
dashboard:
rule: Host(`monitor.testdomain.lan`) || (Host(`monitor.testdomain.lan`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`)))
entryPoints:
- "web-sec"
service: api@internal
tls: {}
middlewares:
- authDashboard
metrics:
rule: PathPrefix(`/metrics`)
entryPoints:
- "web-sec"
service: prometheus@internal
tls: {}
middlewares:
- authProm
middlewares:
authDashboard:
basicAuth:
usersFile: "/etc/traefik/.users"
authProm:
basicAuth:
usersFile: "/etc/traefik/.usersProm"