Frage

Wir haben eine Website; die bis jetzt nur HTML-Seiten hatte. Jetzt sind wir es in ASP .NET neu zu entwickeln.

Das bedeutet, dass alle .html Seiten Erweiterung .aspx geändert werden. Das Problem ist, es gibt eine Menge von externen Verweisen auf diesen Seiten ist, und wir möchten nicht gehen und chage sofort, jeden Link aspx.

Gibt es eine Möglichkeit einen Link zu umleiten Seiten .html Seiten .aspx? Zum Beispiel ist es eine Möglichkeit, dass der Server die Datei überprüft angegeben, findet heraus, dass es Seite .html verbindet und öffnet automatisch die ASPX-Seite?

War es hilfreich?

Lösung

Wenn Sie irgendeine Art von url tun Umschreiben Sie alle Links die gleiche bleiben kann und dient nur der aspx Seiten, Anfrage index.html wird gemappt Index.aspx

Hier ist, was ms sagt über asp.net URL-Rewriting:

http://msdn.microsoft.com/en-us/library /ms972974.aspx

Andere Tipps

Ich würde diese Gelegenheit wahrnehmen lassen Erweiterungen (.html, ASPX, etc.) hinter sich.

Für alle unsere wichtigen Websites, die wir jetzt eine benutzerdefinierte Mapping-System verwenden, wobei eine virtuelle Seite URI zu einem bestimmten aspx (or.html) Seite abgebildet wird. Dies hat einige Vorteile:

  • Ihre Besucher sehen "schöner" URIs;
  • Sie sind frei, Ihre Website neu zu organisieren, wie Sie sehen, passen, hinter den Kulissen, ohne die bestehenden eingehende Links zu brechen;
  • Sie können dynamische virtuelle URIs verwenden, zB statt /Product.aspx?p=Blah, können Sie / Produkte / Blah

Wir haben unser eigenes System, aber ich glaube, jetzt ASP.NET MVC diese Funktion Built-in hat.

(Wenn Sie diesen Weg gehen, Sie Legacy-Mappings für .html URIs hinzufügen können, die auf Ihre neue ASPX-Seiten-Punkt).

Sie können in den ASP.NET System.Web.Routing Namensraum aussehen sollen, die .NET 3.5 SP1 wurde hinzugefügt Ich glaube:

http://blogs.msdn.com/mikeormond/archive/2008/05/14/using-asp-net-routing-independent-of-mvc.aspx

http://msdn.microsoft.com/en -US / library / system.web.routing.aspx

Hier ist, wie wir eine ähnliche Situation behandelt werden.

  1. Setup IIS HTML-Erweiterung auf ASP.Net statt Handhabung direkt abzubilden.

  2. In dem HttpApplication.BeginRequest Handler sehen, ob der Antrag auf eine HTML-Datei vorgenommen wird, die, wenn so migriert wurde aspx dann stattdessen die aspx Seite absitzen durch die Reaktion umgeleitet wird.

  3. Bei der html fiile wurde noch einfach nicht kartiert die statische HTML-Datei absitzen.

Wie stusmith berühren, sollten Sie nicht lassen Sie Ihre zugrunde liegende Technologie ausgesetzt werden (und sicherlich Mandat nicht), was Ihre URIs aussehen. Der beste Weg ist, wie zeigen überhaupt keine Erweiterungen erwähnt, aber in der gegenwärtigen Situation ist es vielleicht möglich, das System so zu konfigurieren, dass Dateien .html als Grundlage des Handelns, als wären sie aspx?

Ich weiß nicht, das erste, was über .NET aber ich nehme an, dass dies möglich ist, ohne durch zu viele Reifen zu gehen.

Der zweite beste Ansatz ist es, die URIs neu zu schreiben, aber das erfordert zusätzliche Arbeit für den Server (nicht viel, aber es summiert sich).

(leitet nicht mit einem Meta-Refresh. Jede andere Lösung ist besser.)

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