2016-07-26 29 views
4

Ich habe versucht, meine Homepage zu einer anderen IP-Adresse in meiner ASP.Net MVC-Anwendung umzuschreiben. Ich habe URL Rewrite und Application Request Routing Module in IIS installiert. Ich habe das Umschreiben in meine web.config eingestellt, wenn ich den Aktionstyp zum Umleiten ändere, funktioniert es perfekt, aber sobald ich es wieder umschreibe, funktioniert es überhaupt nicht. Ich habe die übereinstimmende URL geändert, um alle Anfragen zu akzeptieren, aber es funktioniert trotzdem nicht.ASP.Net MVC-Homepage zu einer anderen IP-Adresse umschreiben

<system.webServer> 
     <rewrite> 
     <rules> 
     <clear /> 
     <rule name="node" enabled="true" patternSyntax="Wildcard" stopProcessing="true"> 
      <match url="*" /> 
      <action type="Rewrite" url="http://255.255.255.255/" /> 
     </rule> 
     </rules> 
    </rewrite> 
    </system.webServer> 

Es scheint wie Umschreiben Prozess hat einige Konflikte mit Routing. Wie könnte ich die Priorität des Neuschreibens erhöhen?

+2

Rewrite ist nur das, die URL neu schreiben, damit Ihre Anwendung es besser verarbeiten kann. Zum Beispiel kann 'product.myserver.com/pepsi' als' myserver.com/product? Name = pepsi' überschrieben werden, so dass Ihre Anwendung den Parameter 'name' mit dem Wert' pepsi' hat. Es wird nicht geändert, um die Anforderung an die angegebene URL umzuleiten und die URL im geschriebenen Browser des Clients nicht zu ändern. – DPac

+0

Nein, ich könnte erklären, nicht klar genug, ich erwarte den Inhalt von http://255.255.255.255/ während ich im root meiner Website sehen, aber es mag das nicht. einfach überspringen Sie den Prozess. – Behzad

+0

Wenn Sie den Inhalt von 255.255.255.255 sehen möchten, benötigen Sie eine Weiterleitung. Rewrite leitet die Anforderung nicht an die angegebene URL um. – DPac

Antwort

1

Zuerst müssen Sie eine Application Request Routing Server Farm konfigurieren, die nur aus einem Server besteht (Sie sollten eine IP für diesen Server angeben). Danach müssen Sie eine globale URL-Rewrite-Regel wie beschrieben konfigurieren here.

0

Würde es Config Vererbung passiert? Wenn ja, können Sie den Abschnitt wickeln Sie mit < Ort wollen > deaktivieren inheritence von übergeordneten App ...

<location path="." inheritInChildApplications="false"> 
    <system.webServer> 
    ... 
    </system.webServer> 
</location> 
1

Die Konfiguration des URL Rewrite-Modul im <rewrite> Abschnitt für interne URLs ist, und kann nicht neu schreiben Domäne oder IP des Servers:

IIS.NET: eine Rewrite Aktion ersetzt die aktuelle URL-Zeichenfolge mit einer Substitution String. Eine Ersetzungszeichenfolge muss immer den URL-Pfad angeben (für Beispiel, Contoso/Test/default.aspx).

Was Sie gefragt haben, ist kein URL-Rewrite, sondern ein Reverse-Proxy. Wenn Sie Zugriff auf IIS haben, können Sie versuchen, reverse proxy configuration, oder erstellen Sie einfach einen HttpHandler, ähnlich wie example. Die nächste Option ist http://urlrewriter.codeplex.com

+0

Das ist, was ich sage, wenn Sie den Reverse-Proxy in IIS für asp.net mvc App konfigurieren, funktioniert es nicht für die Homepage – Behzad

+0

Sie haben rewrting, kein Reverse-Proxy . ' Alex

+0

@Behzad, Smirnovs Antwort ist lexikalisch korrekt. ** Eine Domäne ist eine Domäne. ** Wenn Sie Domänen in derselben Anwendung gemischt haben, können Sie die IP-Adresse einer anderen IP-Adresse auf dieselbe Website auflösen. Dies wäre eine implizit aufgelöste Weiterleitung. ** Und das wäre ein Konfigurations-Hack und wäre keine Programmierfrage. ** Die Antwort ist also völlig korrekt, während Sie beim Thema bleiben. –