I posted some thoughts on a similar topic here:
In your case imaging that you are accessing portainer at http://host/portainer/mainpage for the sake of an example. Portainer does not expect to be hosted at /portainer. So all references to other pages and/or assets might be on the page in form of /asset/bla
that is absolute. In this case your browser will request from trafik http://host/asset/bla
with portainer nowhere to be seen. Of course you will get 404 in that case.
This is not a traefik limitation. It's just that many web application are not written to be used this way. Not much you, or traefik can do about that.
For reasons outlined above I would personally not go for this approach, this is just inviting misery. One way when this is workable if all /service1 /service2 /servicen is written by you and/or your company, so you can make sure that they play nice and support being hosted on arbitrary URLs. Another way this is workable if application author is willing to support this which might be indicated in their documentation with examples of setting up reverse proxy for their app in this way.