2016-05-24 27 views
1

Ich bin neu in .net-Ökosystem und zu meinem Projekt. Mir wurde eine Aufgabe zum Erstellen von Vanity-URLs wie folgt zugewiesen.Vanity-URL für vorhandene URL für ASP-Projekt in IIS 6 zu erstellen, indem nichts installiert

Die bestehende URL lautet:

www.example.com.in/Public/Basic-Page.html
Vanity URL: example.com.in/BasicPage

Sowohl die Links müssen am Ende funktionieren und auf die vorhandene URL verweisen. Das gesamte Projekt ist in ASP, IIS 6. Ich verstehe, dass wir Änderungen in web.config, global.asax vornehmen können, um dies zu erreichen. Aber was genau soll ich programmieren und wo genau soll ich das ändern? oder Kann ich in web.config verwenden, um dies zu erreichen, wenn ja, wie kann ich das tun?

Antwort

0

Von this SO answer ist kein URL-Rewriting in IIS6 integriert, Sie können jedoch Ionics Isapi Rewrite Filter verwenden.

Eine weitere Option ist die Verwendung benutzerdefinierter Fehlerseiten, um alle 404-Anfragen an eine ASP-Seite zu richten, auf der Sie dann Server.Transfer an die entsprechende Seite senden. Sie können dies tun, indem Sie die Datei web.config Modifizieren ...

<system.web> 
    ... 
    <customErrors mode="On" redirectMode="ResponseRewrite"> 
     <error statusCode="404" redirect="/404.asp" /> 
    </customErrors> 
    .... 
</system.web> 

Dann können Sie bei Request.QueryString schauen, um zu bestimmen, welche Seite angefordert wurde, und verwenden Server.Transfer auf die richtige Seite zu umleiten. Die Verwendung von Server.Transfer ist besser als ein response.Redirect für SEO.

Es gibt auch andere Möglichkeiten, dies mit ASP.NET zu tun.

+0

Ich bin nicht sicher, dass web.config Einstellung auf IIS6 funktioniert, ich denke, Sie müssen möglicherweise eine Remote-Desktop-Verbindung öffnen und eine benutzerdefinierte 404-Seite über IIS-Manager festlegen. Es gibt Lösungen von Drittanbietern wie das Ionics Isapi-Modul oder das Helicontech-Modul (das nicht kostenlos ist), IIS6 ist jedoch mit Windows 2003 verknüpft, für das Microsoft die Unterstützung im letzten Jahr beendet hat, wenn die Site nicht nach IIS7 migriert wurde oder 8, aber vielleicht sollten Sie vorschlagen, dass es sein muss. Mit IIS7 und höher können Sie das URL-Rewrite-Modul verwenden. – John

+0

Danke @John. Unser Projekt hat bereits einen , in dem 404-Fehler behandelt werden. Und IIS 7 oder 8 Migration wird nicht in absehbarer Zeit passieren. Als Projekt ist Hugh und Management-Kette ist lang. Gleiches gilt für Lösungen von Drittanbietern. Also gibt es sowieso, um fortzufahren, indem ich Änderungen an global.asax, –

+0

mache Ich verwende den folgenden Code in global.asax, 'Code' <% @ Application Language = "VB"%> Sub Application_Start (ByVal Absender als Gegenstand, ByVal e As EventArgs) Dim url_path As String = HttpContext.Current.Request.Path Wenn URL_path.Contains ("/BasicPage ") Dann Context.RewritePath (URL_path.Replace ("/ BasicPage", "/Public/Basic-Page.html")) End If End Sub Aber diese doenst keine Wirkung haben ich auch versucht usi ng Application_BeginRequest anstelle von Application_Start. Ich weiß nicht, ob Application_BeginRequest in VB unterstützt wird. –