Ich versuche, mithilfe einer URL-Umschreibung auf einem IIS 8.0 vorhandene URLs auf einem Entwicklercomputer umzuschreiben. Der Grund dafür ist, dass ich vorhandenen (alten) Code nicht ändern möchte.
Was ich erreichen möchte, ist, den folgenden Code im Antwortstream zu ändern:
<a href="http://www.foo.com/path/page.asp?a=1">Foo Page</a>
hinein:
<a href="http://www.foo.localhost/path/page.asp?a=1">Foo Page</a>
Aber wenn ich es versuche, endet es mit:
<a href="foo.localhost">Foo Page</a>
Und wie Sie alle wissen, ist dies kein sehr zufriedenstellendes Ergebnis.
Also: Wie kann ich diese Umschreibung richtig durchführen, um mein Ziel zu erreichen?
Ich weiß, dass es bessere Möglichkeiten gibt, dies zu tun, beispielsweise mit Anwendungsvariablen usw., aber es ist eine alte Lösung und ich möchte nicht zu sehr an der Anwendung selbst herumbasteln. Ich möchte die Änderungen auf ein Minimum beschränken. Zumindest am Anfang.
Die Regeln, die ich ausprobiert habe, sehen folgendermaßen aus:
<system.webServer>
<rewrite>
<outboundRules>
<rule name="foo.com" enabled="true">
<match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="foo.com" />
<action type="Rewrite" value="foo.localhost" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>
Wäre Regex die bevorzugte Lösung für dieses Problem?
Antwort1
Diese Frage wurde mir in einem anderen Forum beantwortet. Dies ist zur Information eine Zusammenfassung dieser Antwort.
Die korrekte Umschreibung sieht folgendermaßen aus:
<system.webServer>
<rewrite>
<outboundRules>
<rule name="foo.com" enabled="true">
<match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^(.*)foo.com(.*)$" />
<action type="Rewrite" value="{R:1}foo.localhost{R:2}" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>