Web ページが新しい場所に移動したときに、移動した Web ページを表示し、 Djangoで 301 パーマネント リダイレクト HTTP 応答ステータス コードを返すにはどうすればよいですか?
Ingenutrix
質問する
569 次
2 に答える
9
from django import http
return http.HttpResponsePermanentRedirect('/yournewpage.html')
ブラウザは 301 を取得し、/yournewpage.html
期待どおりに移動します。他の答えは技術的に正しいです.pythonはリダイレクト自体を処理しておらず、ブラウザは処理しています. これはボンネットの下で起こっていることです:
Browser Python HTTP
-------------------> GET /youroldpage.html HTTP/1.1
<------------------- HTTP/1.1 301 Moved Permanently
Location: /yournewpage.html
-------------------> GET /yournewpage.html HTTP/1.1
于 2008-11-09T19:13:21.360 に答える
3
できません。
301 は、ブラウザによって直接処理される HTTP リターン コードです。多くのサイトは、最初にユーザーに変更を知らせるリダイレクト ページにユーザーを送信し、X 秒後に新しいページにユーザーを送信することで、これら 2 つの問題を処理します。ただし、redirect-er ページには 200 コードが必要です。
小さなバリエーションの 1 つは、検索エンジンのスパイダーを (IP および/またはユーザー エージェントによって) 検出し、301 を与えることです。これにより、検索結果が新しいページを指します。
于 2008-11-09T19:08:06.147 に答える