將MoovWeb用於大型電子商務客戶端。他們希望阻止桌面用戶訪問移動網站。所以基本上,如果用戶使用桌面瀏覽器並嘗試訪問(m.site.com),他們將被重定向到(site.com)。MoovWeb:將桌面用戶重定向到桌面站點,如果他們嘗試訪問m.site.com
必須這樣做,在氚(最有可能接近main.ts的頂部),因爲JS運行的時間,我們會被加載的網站兩次(一次以米,然後再次通過www。)
我很猶豫是否使用正則表達式來檢查$ user_agent,因爲如果我們不匹配每個可能的移動代理,並且用戶轉到m。在他們無與倫比的電話上,他們將得到無盡的重定向(m。> www。> m。> www。> m。> ...)。我知道用戶代理有非常詳細的正則表達式字符串,但儘管詳細,但我們發現有些手機不再匹配的唯一方法是銷售損失,這不是一種選擇。
這是我原來的氚試驗的嘗試,這會導致重定向不使用Android或iPhone手機用戶:
match($host,/^m\./) {
match($user_agent) {
not(/(Android|iPhone)/) {
$newHost = $host
$newHost {
replace(/^m\./,"")
}
$redirect = "http://"+$newHost+$path
export("Location",$redirect)
}
}
}
也許,你想匹配的'm。'是在字符串的開頭,是嗎?試試'/^m \ ./'。 –
謝謝!這實際上是一個明智的舉措,我會用它更新代碼。但是它仍然無法解決檢測手機瀏覽器與桌面瀏覽器的更大問題。 – chonax