Set different route and settings for api/ws, Traefik on K8s

What's the best way to do something like this with Traefik (kubernetes IngressRoute CRD)?

NGINX:

location / {
      proxy_pass http://semaphore/;
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      
      proxy_set_header X-Forwarded-Proto $scheme;

      proxy_buffering off;
      proxy_request_buffering off;
    }

    location /api/ws {
      proxy_pass http://semaphore/api/ws;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header Origin "";
    }

Thank you.

With router rule you set the matching Host() and/or PathPrefix(), middleware is used to set headers, then service is declaring the target.

Traefik doc is your friend, they have some Traefik k8s examples.