2013-09-29 9 views
5

Dobrze więc jeśli pójdziesz do dokumentacji tutaj: https://docs.djangoproject.com/en/dev/topics/http/shortcuts/django: jaka jest różnica między tymczasowym przekierowaniem a stałym przekierowaniem?

i przewiń w dół, aby spojrzeć na ostatni przykład przekierowaniem() mówi „Domyślnie przekierowanie() zwraca tymczasowy przekierować wszystkie z powyższych. formularze przyjmują stały argument, jeśli ustawione na True, zwracane będzie stałe przekierowanie: "

Jaka jest różnica między tymczasowym przekierowaniem a stałym przekierowaniem? Używam go, aby użytkownik logował się i był uwierzytelniany, a następnie przekierowywał go na stronę zalogowaną. Czy zamiast tego powinienem używać HttpResponseRedirect()? Czy daje jakieś korzyści z używania przekierowania() zamiast HttpResponseRedirect()?

+1

nie jest django, ale norma terminologia HTTP: http://webdesign.about.com/od/http/qt/tip301v302redir.htm – karthikr

+0

Och, doskonałe, dzięki .. Ale uhm, jest HttpResponseRedirect stałe lub tymczasowe przekierowanie ? – user2817200

+0

tymczasowy, bez parametru 'permanent = True' – karthikr

Odpowiedz

3

Istnieją dwa sposoby zwrócenia 301 stałe przekierowanie:

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

czyli

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

okej, więc czy, twoim zdaniem, jeśli chcę przekierować na zalogowaną stronę po uwierzytelnieniu użytkownika, powinienem użyć tymczasowego lub stałego? – user2817200

+1

Użyłbym tymczasowego przekierowania. Trwałe przekierowania dotyczą zmiany adresów URL zasobów. Zobacz: http://en.wikipedia.org/wiki/HTTP_301 – Brandon

+0

Ah, okay dzięki – user2817200

3

Wystarczy dodać notatkę do postu Brandona dotyczące danej pytanie jaka jest różnica między n oba. Główną różnicą między tymczasowymi a stałymi przekierowaniami jest sposób, w jaki postrzegają to strony trzecie. Jeśli Google zobaczy stałe przekierowanie, prawdopodobnie przestanie istnieć stara witryna i zaktualizuje wszystkie działania, by uzyskać bezpośredni dostęp do nowego adresu URL. Niektórzy mówią, że Google faworyzuje stałe przekierowania, ponieważ tymczasowe przekierowania są często wykorzystywane przez spamerów.

Przypadkiem tymczasowych przekierowań jest np. wewnętrzne poprawki adresów URL w Twojej witrynie, które prowadzą do serwera lustrzanego pobierania/serwera plików statycznych. W takim przypadku strona przekierowująca prawdopodobnie pozostanie taka sama, podczas gdy inny adres serwera może się zmienić (np. Host statycznej treści, gdziekolwiek jest najtańszy). Używanie trwałych przekierowań może powodować problemy (pomyśl o odtwarzaczy podcastów w telefonie, które pamiętają takie przekierowania i nie rozpoznają go podczas przenoszenia statycznego serwera plików).

Powiązane problemy