Here’s a snippet you can put into the web config that looks like it will do what you need. There are other dependencies (like preview) that will need redirecting but you shouldn’t ever hit them without hitting umbraco/ first, so don’t think you would need to worry about them.
<system.webServer>
<rewrite>
<rules>
<rule name="umbraco requests to www.site1.com" stopProcessing="true">
<!-- match Umbraco URL requests -->
<match url="umbraco.*" />
<conditions>
<!-- If we're not on the site1.com domain... -->
<add input="{HTTP_HOST}" pattern="^www\.site1\.com" negate="true" />
</conditions>
<action type="Redirect" url="https://www.site1.com/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
You can read more about the rewrite module and different configuration options in the Microsoft docs
You didn’t tag this with an Umbraco version but be aware that surfacecontrollers and umbracoapicontrollers in v13 and below do use /Umbraco in the path as well.
Would make it only match domain.com/umbraco and not anything else if that’s all you want (so don’t have to worry about cross dominan surface controller issues.. and you can always annotate your api controllers/surface controllers with custom routes eg [route="api/{controlllername}"] so that they aren’t in the /umbraco/… path.
Also there’s an assumption here that we are on IIS.. and not some linux + kestrel hosting?