Como mostrar ao visitante uma página web movido e retornar um código de status de resposta HTTP 301 redirecionamento no Django?

votos
0

Quando uma página da Web foi movido para um novo local, como faço para mostrar a página web movido e retornar um código de status de resposta HTTP 301 redirecionamento permanente no Django ?

Publicado 09/11/2008 em 19:39
fonte usuário
Em outras línguas...                            


2 respostas

votos
8

   from django import http

   return http.HttpResponsePermanentRedirect('/yournewpage.html')

o navegador irá obter o 301, e ir para /yournewpage.htmlcomo esperado. a outra resposta é tecnicamente correto, em que python não está a lidar com o redirecionamento per se, o navegador é. isso é o que está acontecendo sob o capô:

Browser             Python         HTTP
   ------------------->            GET /youroldpage.html HTTP/1.1

   <-------------------            HTTP/1.1 301 Moved Permanently
                                   Location: /yournewpage.html
   ------------------->            GET /yournewpage.html HTTP/1.1
Respondeu 09/11/2008 em 20:13
fonte usuário

votos
3

Você não pode.

301 é um código de retorno HTTP que está diretamente postas em prática pelo navegador. Muitos sites de lidar com essas duas questões por enviar primeiro o usuário para uma página de redirecionamento-er que informa ao usuário sobre a mudança e, em seguida, X segundos depois envia-los para a nova página. Mas a página de redirecionamento-er deve ter um código 200.

Uma pequena variante é detectar o mecanismo de busca (por IP e / ou agente de usuário) e dar -lhes a 301. Dessa forma, os resultados da pesquisa apontam para sua nova página.

Respondeu 09/11/2008 em 20:08
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more