88

Redirect()との違いは何ですかRedirectPermanent()Redirect()いくつかの記事を読んだことがありますが、いつandを使用する必要があるのか​​ わかりませんRedirectPermanent()。例を示していただけますか。

4

3 に答える 3

157

2 つの基本的な違いはRedirectPermanent、ブラウザーにHTTP 301(Moved Permanently) ステータス コードRedirectを送信するのに対し、ブラウザーはステータス コードを送信するHTTP 302ことです。

RedirectPermanentリソースが完全に移動され、以前の場所にアクセスできなくなる場合に使用します。ほとんどのブラウザーは、この応答をキャッシュし、元のリソースを再度要求することなく自動的にリダイレクトを実行します。

Redirectリソースが将来同じ場所 (URL) で利用可能になる可能性がある場合に使用します。

システムにユーザーがいるとしましょう。既存のユーザーを削除するオプションもあります。Web サイトには/user/{userid}、特定のユーザーの詳細を表示するリソースがあります。ユーザーが削除されている場合は、ページにリダイレクトする必要があり/user/does-not-existます。この場合:

ユーザーが二度と復元されない場合は、 を使用して、URL が を指していても、後続のリクエストでRedirectPermanentブラウザーが直接アクセスできるようにする必要があります。/user/does-not-exist/user/{userid}

ユーザーが将来復元される可能性がある場合は、通常のRedirect.

于 2013-07-07T23:22:39.727 に答える
17

RedirectPermanent301 およびRedirect302 ステータス コード

于 2013-07-07T23:21:39.270 に答える
1

これらは、異なる応答コードをブラウザーに送信します。301 は永続的なリダイレクトで、302 は一時的なリダイレクトです。最終的な効果は同じですが、クライアントがリンクのインデックスを作成したい場合 (これを行う最も一般的なクライアントは検索エンジンです)、永続的なリダイレクトにより、古いリンクを無視して新しいリンクの使用を開始するようにレコードを更新するようにクライアントに指示されます。 . 一時リダイレクトは、ページが現在リダイレクト中であることをクライアントに伝えますが、インデックス データベースから古いリンクを削除することはありません。

于 2016-12-22T06:12:06.760 に答える