IIS Rewrite funktioniert nicht (aber die Umleitung funktioniert)

9

Ich habe versucht, mit URL-Re-Writing mit dem Rewrite Module 2.0 zu spielen, aber ich hatte kein Glück, es zum Laufen zu bringen. Ich versuche, alle Aufrufe der Webanwendung an Port 80 in andere Anwendungen umzuwandeln, die in IIS gehostet werden (oder vielleicht auf verschiedenen Servern im Netzwerk). Unter Verwendung der von IIS bereitgestellten GUI habe ich die folgende Regel erstellt:

%Vor%

Ruhig einfach, aber leider funktioniert es nicht. Auf der anderen Seite, wenn ich den Aktionstyp in Redirect ändere, funktioniert es gut.

Was könnte das Problem sein?

    
Kassem 12.03.2013, 09:36
quelle

4 Antworten

21

Ich bin gestern auf dasselbe Problem gestoßen und es hat lange gedauert, bis ich herausgefunden habe.

Der Schlüssel hier ist, dass Sie ein http:// Präfix in Ihrer Umschreibeaktion haben; Dies macht dies zu einem speziellen Fall, der durch das Routing von Anwendungsanfragen behandelt werden muss. Der erste Schritt besteht darin, sicherzustellen, dass das Application Request Routing-Modul installiert ist. Sie finden das Modul unter Ссылка . Sobald das installiert ist, gehen Sie zu Ihrem IIS-Webserver (eine Ebene höher von Ihrer Website), und öffnen Sie die Funktion "Anwendungsanforderungs-Routing-Cache". Wählen Sie aus den Aktionen auf der rechten Seite Server.Proxy.Settings und stellen Sie sicher, dass das Kontrollkästchen "Proxy aktivieren" aktiviert ist. Dadurch kann die Aufgabe zum erneuten Schreiben von URLs an das Routing für Anwendungsanforderungen umgeleitet werden, und Ihr Reverse-Proxy sollte für externe Anforderungen funktionieren.

Die Idee kam von diesem ausgezeichneten Blogbeitrag von 2009: Ссылка

    
Rob Lyndon 24.11.2015 10:29
quelle
3

Ich bin über diesen alten Beitrag gestolpert, als ich versuchte, das gleiche Problem zu lösen.

Gelöst!

Mit der Funktion "URL neu schreiben" im IIS-Services-Manager habe ich eine benutzerfreundliche URL-Regel erstellt.

Das hat gut funktioniert und als ich mir die Regel in der Datei web.config (www root) anschaute, wurde eine Regel zum Umleiten und eine Regel zum Umschreiben angezeigt.

Ich habe das für 1 Match bearbeitet. Dann habe ich diesen Code einfach dupliziert und die Produkt-ID für jeden Artikel bearbeitet. Beispiel unten:

%Vor%

Die erste Regel sucht nach der Zeichenfolge "product.php" in der URL und "id_product=35" und leitet dann zu "990mm-bohemia-cast-iron-electric-radiator" um, die derzeit nicht existiert. Dann (siehe unten)

%Vor%

Diese Regel schreibt das "product.php?id_product=35" -Bit in '990mm-böhmen-Gusseisen-Elektroheizkörper "um und erstellt den neuen Ort für die Umleitung.

    
DANINTHETOON 11.06.2013 08:18
quelle
0

Ändern Sie die Rewrite-URL in AbsolutePath anstatt http: // ... es sollte

sein

Es hat für mich funktioniert, aber in meinem Fall habe ich eine feste Webseite neu geschrieben.

    
Allan Zeidler 20.02.2017 02:51
quelle
0

Ich hatte 404 Fehler mit der URL neu schreiben. Vielleicht finden Sie es nützlich. Bitte überprüfen Sie es bei Ссылка

    
Riddik 27.12.2017 07:38
quelle