2013-09-29 518 views
5

Được rồi vì vậy nếu bạn đi đến các tài liệu ở đây: https://docs.djangoproject.com/en/dev/topics/http/shortcuts/django: sự khác biệt giữa chuyển hướng tạm thời và chuyển hướng vĩnh viễn là gì?

và cuộn xuống để xem xét các ví dụ cuối cùng của chuyển hướng() nó nói "Theo mặc định, chuyển hướng() trả về một chuyển hướng tạm thời tất cả những điều trên. các biểu mẫu chấp nhận một đối số vĩnh viễn, nếu được đặt thành True, chuyển hướng vĩnh viễn sẽ được trả về: "

Bây giờ, sự khác biệt giữa chuyển hướng tạm thời và chuyển hướng vĩnh viễn là gì? Tôi đang sử dụng nó để khi người dùng đăng nhập và được xác thực, sau đó chuyển hướng người đó đến trang đăng nhập. Tôi có nên sử dụng HttpResponseRedirect() thay thế không? Liệu nó có mang lại lợi ích gì khi sử dụng redirect() thay vì HttpResponseRedirect() không?

+1

CNTT không phải là django, nhưng thuật ngữ HTTP chuẩn: http://webdesign.about.com/od/http/qt/tip301v302redir.htm – karthikr

+0

Ồ, hoàn hảo, cảm ơn .. Nhưng uhm, là HttpResponseRedirect chuyển hướng vĩnh viễn hoặc tạm thời ? – user2817200

+0

tạm thời, không có tham số 'permanent = True' – karthikr

Trả lời

3

Có hai cách để trả về một chuyển hướng 301 vĩnh viễn:

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

hay:

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

được thôi, vì vậy, theo ý kiến ​​của bạn, nếu tôi muốn chuyển hướng đến trang đăng nhập sau khi người dùng đã được xác thực, tôi có nên sử dụng tạm thời hoặc vĩnh viễn không? – user2817200

+1

Tôi sẽ sử dụng chuyển hướng tạm thời. Chuyển hướng vĩnh viễn là khi URL tài nguyên thay đổi. Xem: http://en.wikipedia.org/wiki/HTTP_301 – Brandon

+0

Ah, cảm ơn nhé – user2817200

3

Chỉ cần thêm một lưu ý cho bài Brandon của liên quan đến bạn câu hỏi betwee khác biệt là gì n cả hai. Sự khác biệt chính giữa chuyển hướng tạm thời và vĩnh viễn là cách bên thứ ba nhìn thấy nó. Nếu Google thấy chuyển hướng vĩnh viễn, có thể trang web cũ đã mất và sẽ cập nhật tất cả các lần truy cập để truy cập trực tiếp vào URL mới. Một số người nói rằng Google ủng hộ chuyển hướng vĩnh viễn vì chuyển hướng tạm thời thường được người gửi spam sử dụng.

Trường hợp chuyển hướng tạm thời là ví dụ: ghi lại nội bộ các URL trên trang web của riêng bạn liên kết đến máy chủ tệp tải xuống/máy chủ tệp tĩnh. Trong trường hợp này, trang web chuyển hướng có thể sẽ giữ nguyên trong khi địa chỉ máy chủ khác có thể thay đổi (ví dụ: nội dung tĩnh của máy chủ ở bất kỳ đâu rẻ nhất). Sử dụng chuyển hướng vĩnh viễn có thể gây ra sự cố (suy nghĩ về người chơi podcast trên điện thoại của bạn nhớ chuyển hướng đó và sẽ không nhận ra nó khi bạn di chuyển máy chủ tệp tĩnh của mình).