2014-11-01 39 views
0

我正在嘗試將手機重定向添加到我的網站。我想我想要一個完全獨立的佈局,雖然,而不是使用媒體查詢。BuzzFeed如何做他們的移動重定向?

一個簡單的方法就是讓CloudFlare檢測並重定向到一個子域m.example.com

我不想使用子域,但有幾個原因。

我過去的另一種做法是使用this mobile detect script進行媒體查詢並部分加載頁面的各個部分。這從長遠來看證明是一場噩夢,我不想使用媒體查詢。

我注意到buzzfeed.com這種方式幾乎完全是我想要做的。看起來他們以某種方式檢測瀏覽器或其他東西,然後重定向到顯示移動網站的移動設備。

我不知道這是在服務器上還是在Javascript中完成,或者他們是怎麼做的。我認爲它是在服務器上,因爲如果我curl http://www.buzzfeed.com/?s=mobile我得到一個302響應...我猜,因爲curl不發送頭看起來像移動。

是否有常見的,經常維護的nginx或varnish腳本來做到這一點?我主要是在撓撓我的腦袋,而Google搜索似乎並沒有提出很多相關的討論,除了3年前的那些看起來不太好的片段之外。

回答

2

您可以使用varnish-devicedetect VCL來完成您要查找的所有內容。 installation guide爲您提供了有關如何將查詢參數添加到請求URL的示例,或者向發送到後端的請求添加自定義標頭。這允許您透明地處理不同類型的客戶端。

需要相當多的思考和擺弄才能使所有Vary標題,清除等工作完美無瑕,但在示例的幫助下,您應該能夠爲您製作清漆設備檢測工作。

+0

太棒了,謝謝! – Tallboy 2014-11-06 11:05:27