当网页移动到新位置时,如何显示移动的网页并在Django中返回301永久重定向HTTP响应状态代码?
答案 0 :(得分: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
答案 1 :(得分:3)
你不能。
301是浏览器直接操作的HTTP返回码。许多站点通过首先将用户发送到重定向页面来处理这两个问题,该页面告诉用户有关更改的信息,然后X秒后将它们发送到新页面。但重定向页必须有200个代码。
一个小变体是检测搜索引擎蜘蛛(通过IP和/或用户代理)并将他们 301.这样搜索结果指向您的新页面。