Static config yields 404

Why does my simple static File configuration always yield 404 Not Found? Launching traefik.exe with this config does listen on port 80 and the URL under Services does lead to a working website.

I am not using Docker and this is a static file configuration. The Access file does show I am getting hits to service. I copied the debug info file at the bottom of this post. Note, the "rule" is properly configured although it does not show that the double-quote mark is escapted in this post.

[entryPoints]
 [entryPoints.web]
  address = "10.1.93.200:80"
  
[http]
[http.routers]
  [http.routers.router0]
  entryPoints = ["web"]
    rule = "Host(\"mydomain.com\")"
    middlewares = ["auth"]
    service = "my-service"

[http.middlewares]
  [http.middlewares.auth.basicAuth]
    users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"]

[http.services]
[http.services.my-service]
  [http.services.my-service.loadBalancer]
  [[http.services.my-service.loadBalancer.servers]]
    url = "http://127.0.0.1:94"

[log]
  level = "debug"
  filePath = "traefik_info.txt"

[accessLog]
  filePath = "traefik_access.txt"

DEBUG info file

time="2021-09-01T04:00:00-07:00" level=info msg="Traefik version 2.5.1 built on 2021-08-20T16:32:51Z"
time="2021-09-01T04:00:00-07:00" level=debug msg="Static configuration loaded {"global":{"checkNewVersion":true},"serversTransport":{"maxIdleConnsPerHost":200},"entryPoints":{"web":{"address":"10.1.93.200:80","transport":{"lifeCycle":{"graceTimeOut":"10s"},"respondingTimeouts":{"idleTimeout":"3m0s"}},"forwardedHeaders":{},"http":{},"udp":{"timeout":"3s"}}},"providers":{"providersThrottleDuration":"2s"},"log":{"level":"debug","filePath":"traefik_info.txt","format":"common"},"accessLog":{"filePath":"traefik_access.txt","format":"common","filters":{},"fields":{"defaultMode":"keep","headers":{"defaultMode":"drop"}}},"pilot":{"dashboard":true}}"
time="2021-09-01T04:00:00-07:00" level=info msg="\nStats collection is disabled.\nHelp us improve Traefik by turning this feature on :)\nMore details on: https://doc.traefik.io/traefik/contributing/data-collection/\n"
time="2021-09-01T04:00:00-07:00" level=info msg="Starting provider aggregator.ProviderAggregator {}"
time="2021-09-01T04:00:00-07:00" level=debug msg="Start TCP Server" entryPointName=web
time="2021-09-01T04:00:00-07:00" level=info msg="Starting provider *traefik.Provider {}"
time="2021-09-01T04:00:00-07:00" level=info msg="Starting provider *acme.ChallengeTLSALPN {"Timeout":4000000000}"
time="2021-09-01T04:00:00-07:00" level=debug msg="Configuration received from provider internal: {"http":{"services":{"noop":{}},"serversTransports":{"default":{"maxIdleConnsPerHost":200}}},"tcp":{},"tls":{}}" providerName=internal
time="2021-09-01T04:00:00-07:00" level=debug msg="No default certificate, generating one" tlsStoreName=default

I kept chipping away at it and resolved the issue. I had to add File as a Provider. It did not seem logical because I am adding the file provider designation INSIDE the file that the provider points to. Its seemed redundant but there must be a reason!

[providers]
  [providers.file]
    filename = "./traefik.toml"

They are usually separate files. Or the file provider is configured to a directory where a collection of dynamic files are kept.

https://doc.traefik.io/traefik/getting-started/configuration-overview/