0

当网页移动到新位置时,如何显示移动的网页并在Django中返回 301 永久重定向 HTTP 响应状态代码?

4

2 回答 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 秒后将它们发送到新页面。但是redirect-er 页面必须有一个200 代码。

一个小的变体是检测搜索引擎蜘蛛(通过 IP 和/或用户代理)并给它们301。这样搜索结果就会指向您的新页面。

于 2008-11-09T19:08:06.147 回答