IIS7 URL Umschreiben ausgehende Regeln neu
-
25-10-2019 - |
Frage
Ich kann aus irgendeinem Grund nicht meinen Kopf um diese Umschreiben -Regeln machen und ich hatte gehofft, dass ihr helfen könnt. Was ich möchte, ist eine ausgehende Regel, die Pfade für Link-, IMG-, Skript- und Eingabetags neu schreibt.
Ich möchte das ändern: http://www.mysite.com/appname/css/file.css
Dazu: http://cdn.mysite.com/css/file.css
Grundsätzlich muss ich den Hostnamen austauschen und den App -Namen aus der URL fallen lassen. Ich habe die Vorkonditionsfilter bereits zu *.aspx-Dateien festgelegt, aber der Rest scheint mir griechisch zu sein.
Für Klarheit bearbeiten
Der Appname in der obigen URL ist eine Anwendung in IIS. Es ist ein Platzhalter für jeden Appnamen, der in Gebrauch ist. Mit unserem aktuellen Setup könnte es sich um eine von über 50 verschiedenen Apps handeln. Es wird STETS ein Appname sein. Vielleicht erleichtert das die Regel noch einfacher.
Der Hostname kann in diesem Fall www.mysite.com auch in Bezug auf die Subdomain variieren. Es könnte www1.mysit.com, www2 usw. auch so sein, dass ich die SSL beibehalten muss, wenn es dort ist.
Ich denke, wenn es darauf ankommt, muss ich wirklich nur die URL abzüglich des Appnamens nehmen und sie an die neue Domäne anhängen, während ich das verwendete Protokoll respektiere.
Original URL: http (s): // {host}/{appname}/{url}
Ausgabe: http (s): //cdn.mysite.com/ {url}
Lösung
Ich gehe davon aus, dass Ihre Website -Domain immer gleich ist, dann sollte diese Regel tun:
<rule name="CdnRule" preCondition="OnlyAspx" >
<match filterByTags="Img, Input, Link, Script" pattern="^(.+)://.+?\.(.+?)/.+?/(.*)" />
<action type="Rewrite" value="{R:1}://cdn.{R:2}/{R:3}" />
</rule>
<preConditions>
<preCondition name="OnlyAspx">
<add input="{PATH_INFO}" pattern=".+\.aspx$" />
</preCondition>
</preConditions>
Bearbeiten: geändert nach klarer Frage
Ich gehe davon aus, dass die Subdomain (www, www2, ...) immer da ist und in der Ziel -URL ignoriert werden muss.