.htmlページを.aspxページに自動的に再マッピングする方法は?
質問
ウェブサイトがあります。これまではHTMLページしかありませんでした。現在、ASP .Netで再開発しています。
これは、すべての.htmlページが.aspx拡張子に変更されることを意味します。問題は、これらのページへの外部参照がたくさんあり、すぐにaspxへのすべてのリンクを変更したくないことです。
.htmlページへのリンクを.aspxページにリダイレクトする方法はありますか?たとえば、サーバーが指定されたファイルをチェックし、.htmlページにリンクしていることを確認して、.aspxページを自動的に開く方法はありますか?
解決
何らかのURL書き換えを行うと、すべてのリンクを同じままにしてaspxページを提供することができ、index.htmlのリクエストはindex.aspxにマッピングされます
msがasp.netのURL書き換えについて言っていることは次のとおりです。
他のヒント
この機会に、拡張子(.html、.aspxなど)を残します。
主要なWebサイトすべてで、カスタムマッピングシステムを使用します。これにより、仮想ページURIが特定の.aspx(または.html)ページにマッピングされます。これにはいくつかの利点があります:
- 訪問者には「nicer」が表示されます。 URI;
- 既存の受信リンクを壊すことなく、舞台裏で自分の好みに合わせてサイトを自由に再編成できます。
- 動的な仮想URIを使用できます。たとえば、/ Product.aspx?p = Blahの代わりに、/ Products / Blahを使用できます
独自のカスタムシステムがありますが、ASP.NET MVCにはこの機能が組み込まれていると思います。
(このルートをたどると、新しい.aspxページを指す.html URIのレガシーマッピングを追加できます。)
.NET 3.5 SP1で追加されたASP.NET System.Web.Routing名前空間を調べてください:
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
同様の状況をどのように処理したかを示します。
-
HTML拡張機能を直接処理する代わりにASP.NetにマップするようにIISをセットアップします。
-
HttpApplication.BeginRequestハンドラーで、aspxに移行されたhtmlファイルに対してリクエストが行われているかどうかを確認します。 >
-
htmlファイルがまだマップされていない場合、静的なhtmlファイルを提供します。
stusmithが触れたように、基礎となるテクノロジーを公開してはいけません(そして、確かに必須ではありません)。最善の方法は、拡張子をまったく表示しないようにすることですが、現在の状況では、.htmlファイルが.aspxであるかのように動作するようにシステムを構成することが可能かもしれません。
.NETについて最初に知っていることはありませんが、あまり多くのフープを経ることなくこれが可能であると思います。
2番目の最善のアプローチはURIを書き換えることですが、これにはサーバーに余分な作業が必要です(それほど多くはありませんが、合計されます)。
(メタリフレッシュでリダイレクトしないでください。他のすべてのソリューションの方が優れています。)