1

如果我有一個網站有以下不同的位置;將用戶重定向到特定國家時應發送哪個HTTP狀態碼?

www.site.com/uk/ www.site.com/us/ www.site.com/ca/

當 「用戶X」(甚至可能是谷歌)首先導航到www。 site.com我想檢查他們的IP,並猜測他們應該被重定向到/ uk /版本(或其他)。

用戶仍然可以隨時選擇更改其國家(ala GoDaddy.com),但是當他們最初登陸並被重定向時,我應該如何發送HTTP狀態碼?

我首先想到301,但在技術上它不是一個永久重定向,因爲「用戶Y」可能是從加拿大,因此www.site.com應該去www.site.com/ca/

乾杯!

回答

2

我認爲302是合適的。對我來說301似乎太嚴格了,因爲發送重定向的原始URL仍然存在。另外從SEO的角度來看,爬蟲應該仍然訪問舊的「根」--URL。

正如你所提到的加拿大,我有一個真實世界的例子是這樣做的。看看加拿大基吉吉,當你選擇一個地區(例如http://toronto.kijiji.ca),然後去http://www.kijiji.ca,你會被重定向到選定地區302

+1

處理這個問題的正確方法是添加一個'Vary:'頭文件。如果您將重定向決定基於該標頭,則可以使用'Vary:Accept-language';但正如你所說,你的決定基於客戶端IP,你應該使用'Vary:*'(如[RFC] [http://tools.ietf.org/html/rfc7231#section-7.1.4 ))。我想用一個合適的「Vary:」標題即使301也許是合適的;但是因爲這只是表明,對於每個請求也會有相同的重定向,這些請求也具有相同的未指定的額外頭文件和IP以及其他東西,所以不會有與302 –

相關問題