2

これがシナリオです。すでにさまざまな顧客に公開されている約 5000 の URL のリストがあります。現在、これらすべての URL の場所がサーバー側で変更されています。ただし、サーバーは同じです。これは、.NET3.5/C# を使用した ASP.NET Web サイトです。

私の要件は次のとおりです。顧客は古いソース URL を使用していますが、変更や中間リダイレクト メッセージなどを認識せずに、新しい URL にリダイレクトする必要があります。

私はシナリオ全体を理解しようとしています:

  1. 古い URL から新しい URL への実際のマッピングは、データベースまたは構成のどこに配置しますか。ファイルまたはより良いオプションはありますか?

  2. リダイレクトを実際に実装するにはどうすればよいですか:
    Server.Transfer または Response.Redirect を使用してメソッドを作成する必要がありますか?
    実際の再ルーティングを HTTPModules に配置するようなベスト プラクティスはありますか?それとも Application_BeginRequest ですか?

私は、ベスト プラクティスに準拠した方法論と、もしあれば非常に低いパフォーマンスの低下で達成しようとしています。

4

3 に答える 3

2

アプリケーションがすでにデータベースを使用している場合は、それを使用します。古い URL を主キーにすると、ルックアップが非常に高速になります。個人的には、それを抽象化する .NET クラスで全体をラップしDictionary<string,string>、DB からメモリにロードしてキャッシュできるすべての URL を作成できるようにします。これはさらに高速になります。

絶対に使用しないでServer.Transferください。代わりに、301 Permanently Movedリダイレクトを行う必要があります。これにより、検索エンジンは新しい URL を使用するようになります。NET 4.0 を使用している場合は、HttpResponse.RedirectPermanentメソッドを使用できます。ただし、以前のバージョンではヘッダーを自分で設定する必要がありましたが、これは些細なことです。

于 2010-07-30T19:01:46.563 に答える
0

あなたは間違いなくHTTPModulesを使いたいと思っています。これは一般に受け入れられている慣行であり、最近 Global.asax 内で実行しようとしましたが、最も単純な種類のもの (つまり ) だけを実行したい場合を除き、"~/mypage.aspx/3" <-> "~/mypage.aspx?param1=3見た目よりもはるかに複雑でバグが多いと言えます。

実際、独自の URL 書き換えソリューションを展開しようとしても後悔しています。頼りになるものが欲しいなら、それだけの価値はありません。Scott Guthrie は、このテーマに関する非常に優れたブログ投稿を行っており、 UrlRewriter.netまたはUrlRewriting.netを無料のオープンソース URL 書き換えソリューションとして推奨しています。

幸運を。

于 2010-07-30T19:39:41.150 に答える
0

データベースにデータを保持しますが、アクセス時間を短縮するために ASP.NET キャッシュに読み込みます。

于 2010-07-30T19:06:15.303 に答える