2013-09-29 7 views
5

Okay, so, wenn Sie die Dokumentationen gehen hier: https://docs.djangoproject.com/en/dev/topics/http/shortcuts/django: Was ist der Unterschied zwischen einer temporären Weiterleitung und einer permanenten Weiterleitung?

und scrollen Sie im letzten Beispiel Umleitung suchen() es sagt „standardmäßig umleiten() gibt eine temporäre Umleitung Alle oben genannten. Formulare akzeptieren ein permanentes Argument, wenn sie auf "True" gesetzt ist, wird eine permanente Weiterleitung zurückgegeben: "

Worin besteht der Unterschied zwischen einer temporären Weiterleitung und einer permanenten Weiterleitung? Ich benutze es so, dass, wenn sich ein Benutzer anmeldet und authentifiziert wird, er ihn auf die eingeloggte Seite weiterleitet. Sollte ich stattdessen HttpResponseRedirect() verwenden? Gibt es einen Vorteil der Verwendung von redirect() anstelle von HttpResponseRedirect()?

+1

Es ist nicht Django, aber Standard-HTTP-Terminologie: http://webdesign.about.com/od/http/qt/tip301v302redir.htm – karthikr

+0

Oh, perfekt, danke .. Aber ähm, ist HttpResponseRedirect eine permanente oder temporäre Weiterleitung ? – user2817200

+0

temporär, ohne den Parameter 'permanent = True' – karthikr

Antwort

3

Es gibt zwei Möglichkeiten, um eine 301 dauerhafte Umleitung zurück:

from django.shortcuts import redirect 

def my_view(request): 
    # some code here 
    return redirect('/some/url/', permanent=True) 

https://docs.djangoproject.com/en/1.5/topics/http/shortcuts/#redirect

oder:

from django.http import HttpResponsePermanentRedirect 

    def my_view(request): 
     # some code here 
     return HttpResponsePermanentRedirect('/some/url') 

https://docs.djangoproject.com/en/1.5/ref/request-response/#django.http.HttpResponsePermanentRedirect

+0

okay, also Ihrer Meinung nach, wenn ich auf eine eingeloggte Seite umleiten will, nachdem ein Benutzer authentifiziert wurde, sollte ich temporäre oder permanente verwenden? – user2817200

+1

Ich würde eine temporäre Weiterleitung verwenden. Permanente Weiterleitungen gelten für die Änderung von Ressourcen-URLs. Siehe: http://en.wikipedia.org/wiki/HTTP_301 – Brandon

+0

Ah, okay danke – user2817200

3

einfach eine Anmerkung zu Brandons Post Hinzufügen zu Ihrem Frage, was ist der Unterschied zwischen n beide. Der Hauptunterschied zwischen temporären und permanenten Weiterleitungen besteht darin, wie Dritte es sehen. Wenn Google eine permanente Weiterleitung sieht, würde es wahrscheinlich denken, dass die alte Website verschwunden ist und alle Treffer aktualisieren würde, um direkt auf die neue URL zuzugreifen. Einige Leute sagen, dass Google permanente Weiterleitungen bevorzugt, da temporäre Weiterleitungen oft von Spammern verwendet werden.

Ein Fall für temporäre Umleitungen sind z.B. Interne Umschreibungen von URLs auf Ihrer eigenen Website, die auf einen Download-Mirror/statischen Dateiserver verweisen. In diesem Fall bleibt die Weiterleitungsseite wahrscheinlich gleich, während sich die andere Serveradresse ändern kann (z. B. statischen Host-Inhalt, wo immer es am billigsten ist). Die Verwendung permanenter Weiterleitungen kann zu Problemen führen (denken Sie an Podcast-Player auf Ihrem Telefon, die sich an solche Weiterleitungen erinnern und diese nicht erkennen, wenn Sie Ihren statischen Dateiserver verschieben).

Verwandte Themen