Wrong rule name with Docker

I have an issue similar to Docker provider applies unexpected rule, however, I have no typos (triple-checked). Here's a part of my docker-compose:

version: '3'

services:
  seafile:
    labels:
      - traefik.http.routers.seafile.rule=Host(`seafile.example.com`)
      - traefik.http.routers.seafile.tls=true
      - traefik.http.routers.seafile.tls.certresolver=lets-encrypt
      - traefik.port=80
    depends_on:
      - db
    networks:
      - internal 
      - web

  db:
    networks:
      - internal 

networks: 
    web:
        external: true
    internal:
        external: false

However in the dashboard, I see the wrong name based on containers' names.

Tried Traefik v2.2 and v2.4, no luck.
I've also tried adding - "traefik.docker.network=web" label, which didn't help too.

Traefik is applying the default rule to your db service.

If you don't want that you can use the docker provider option exposedByDefault=false or use constraints. Personally I use exposedByDefault=false