2009-04-13 17 views
4

Wir möchten alle Anforderung in einer ASP.NET-Site zu ~/Default.aspx umleiten, um die Site zu schließen. Wir verwenden IIS7. Der Standort verfügt über Wege, wie dies, dass eine Seite zurück:IIS 7: Umleiten aller Anforderung an Default.aspx

http://test.com/operating

Wir URL-Rewriting verwenden. Wir wollen Anfragen ähnlich denen nach ~/Default.aspx

http://test.com/ verwenden Wir würden normaly / http://test.com/ ASPX- http://test.com// ASPX-

umgeleitet werden so etwas wie dies in web.config:

<customErrors mode="On" defaultRedirect="Default.aspx"> 
     <error statusCode="404" redirect="Default.aspx" /> 
    </customErrors> 

Das Problem dabei ist, dass es nicht Ordner uRL wie diese

umleitet 210

http://test.com/ */

Vielen Dank!

Antwort

2

Haben Sie versucht HttpRedirect? Sie müssen die Funktion jedoch zuerst installieren.

+0

Ja, es half, danke! Sie können jedoch keine Umleitung zu derselben Domäne durchführen oder eine unendliche Umleitung ausführen. Aber ansonsten funktionierte es! Vielen Dank – EtienneT

0

Sie könnten dies tun, wenn keine Dateien mehr existieren.

<system.webServer> 
    <httpErrors errorMode="Custom"> 
     <remove statusCode="404" subStatusCode="-1" /> 
     <error statusCode="404" prefixLanguageFilePath="" path="/Default.aspx" responseMode="ExecuteURL" /> 
    </httpErrors> 

3

Sie eine Datei App_Offline.htm in der Wurzel jeder ASP.NET-Anwendung namens platzieren können. Dies führt dazu, dass ALLE .NET-Seitenanforderungen angenommen werden und der Inhalt der HTM-Datei anstelle der angeforderten Seite ausgegeben wird. Es handelt sich nicht wirklich um eine Weiterleitung, aber es ist eine sehr einfache Möglichkeit, eine ganze Seite zu verkleinern. Bei Bedarf können Sie auch eine Standard-Metaaktualisierung verwenden, um alle angeforderten an einen neuen Speicherort zu senden (denken Sie daran, dies nicht an eine ASPX-Datei auf derselben Site zu tun).

0

Ich würde so etwas in Global.asax schreiben (wohlgemerkt, es ist nur ein Beispiel, nicht produktionsfertige Code):

Application_BeginRequest(object sender, EventArgs e) { 
    if(!Request.Url.ToString().ToLowerInvariant().Contains("default.aspx")) { 
     Response.Redirect("Default.aspx"); 
    } 
} 

Beachten Sie auch, dass dieser Code non-ASP.NET Anfragen brechen wenn die Anwendung im integrierten Modus ausgeführt wird (in anderen werden sogar Anforderungen für Bilder und ähnliches umgeleitet).

Verwandte Themen