Frage

wollte ich wissen, ob es eine Lösung für eine Anwendung mit IIS6 ist die Beseitigung des default.aspx Textes in der URL zu erhalten. so zum Beispiel, wenn ein Benutzer hit:

www.website.com/default.aspx

Im Browser wird lediglich:

www.website.com /

Egal was. Es ist nur für SEO.

ich bereits verwenden UrlRewriting.NET für einige Neufassungen in meinem app, aber für Ich bin nicht so klug eine Regel dafür zu schaffen.

Jede Hilfe ist sehr zu schätzen wissen.

Danke. Jose

War es hilfreich?

Lösung

Wenn Sie etwas haben, URL-Rewriting zu tun, dann alles, was Sie brauchen, um ihre zu tun, sicherzustellen, dass Ihre Links auf die richtige URL verweisen.

Wenn Sie nicht Ihre Links beheben, der jeweils an den Browser entscheiden, ob er will den tatsächlichen Link angezeigt werden sie angefordert werden.

Wenn Sie wirklich mögen einen zwielichtigen Job tun, können Sie einige Javascript verwenden, um die Adressleiste der Browsers Anzeige zu machen, was Sie wollen, auch wenn seine ungültig.

Andere Tipps

Ich denke, ScottGu hat bereits das Thema in ASP.NET neu zu schreiben behandelt: http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net. aspx .

Er umfasst Dinge wie:

  • Rewriting mit UrlRewriter.net, ISAPI Rewrite
  • ASP.NET Tricks, die Entsendung zurück (die Version der URL schlagen)

Mit Ihrem Problem, das ich glaube, Sie brauchen eine Kombination zu verwenden, nie Verknüpfung zu ‚default.aspx‘, dh. NUR verlinkt auf ‚/‘. Verwenden Sie dann Formular Postback-Browser Datei Scott, um sicherzustellen, Postbacks immer die gleiche Version der URL getroffen.

Umleiten ‚default.aspx‘ auf ‚/‘, die dann von ‚default.aspx‘ serviert bekommt klingt wie ein Rezept für eine Katastrophe für mich. befestigen Sie Ihre Links nur um sicherzustellen, dass Sie nie auf ‚default.aspx‘ am Ende ausdrücklich.

Ich denke, die einfachste Möglichkeit, die Suchergebnisse Index (vorausgesetzt, es über HTTP 301 weiß) zu ändern, ist eine kleine Funktion in Ihrem default.aspx des Page_Load zu schreiben, die den Browser dauerhaft ein 301 Moved mit Umleitungen (oder 302 Moved Temporarily).

void Page_Load(...) {

    if(Request.Path.EndsWith("default.aspx", true/*case-insensitive*/, null)) {
       Response.StatusCode = 301;
       Response.StatusDescription = "Moved Permanently";
       Response.Headers.Add("Location", "/");
       HttpContext.Current.ApplicationInstance.CompleteRequest(); // end the request
    }

    // do normal stuff here
}

Wenn default.aspx wird als Standarddokument festgelegt in IIS zu dienen, und alle Ihre interne Website-Links enthalten URLs ohne die default.aspx dann denke ich, dass sollte es tun.

Auch wenn der Benutzer kann immer noch in Typ default.aspx , Suchmaschinen sollte nur die freundliche URLs von Ihren link href Attributen holen.

So wie ich es tun würde, ist Application_BeginRequest in öffentlicher Klasse Globale zu verwenden: System.Web.HttpApplication und die HttpContext.Current.Request.URL für default.aspx überprüfen und HttpContext.Current.Response.Redirect dann dort verwenden, um von wenn Sie es finden.

Der Nachteil eine Umleitung ist mit nicht immer so groß, und dies ist nicht zur Arbeit gehen, wenn Sie Daten zu dieser Seite default.aspx Mitteilung verfassen. Aber man kann nicht einfach den Browser Trick in eine andere URL zeigt, wenn Sie ASP.NET sagen kann, dienen, was Seite, die Sie für jede Anfrage wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top