Evaluate HTTP router before TCP router

Hi,

I'm using a HTTP and TCP router, (see yaml for my configuration). I was wondering if I can get the HTTP router to evaluate before the TCP router?

I want to achieve the following:

What I see now, is that all traffic is routed to 124.124.124.124:443.

http: 
  routers:
    my-app-router:
      rule: "Host(`www.domain.com`) && PathPrefix(`/app`)"
      priority: 10
      service: my-web-app
      entrypoints:
        - web
  services:
    my-web-app:
      loadBalancer:
        servers:
          - url: "http://123.123.123.123:3000/app"  

tcp:
  routers:
    my-tcp-router:
      rule: "HostSNI(`*`)"
      priority: 20
      service: my-tcp-service
  services:
    my-tcp-service:
      loadBalancer:
        servers:
          - address: "124.124.124.124:443"

No (Source):

If both HTTP routers and TCP routers listen to the same entry points, the TCP routers will apply before the HTTP routers. If no matching route is found for the TCP routers, then the HTTP routers will take over.

It may be possible to use an inverter for the host (without path):

rule: HostSNI(`*`) && ! HostSNI(`www.domain.com`)

Unfortunately this is not the case.

Both the HTTP and TCP router are for the same domain. The HTTP router should be active if the path = '/app' for all other requests the TCP router should be used.

I fixed it use 2 HTTP routers with the help of @bluepuma77.

See my other post: How to avoid: failed to verify certificate: x509 with external services / vps - #2 by bluepuma77