2015-10-15 78 views
0

將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) 
     } 
    } 
} 
+0

也許,你想匹配的'm。'是在字符串的開頭,是嗎?試試'/^m \ ./'。 –

+0

謝謝!這實際上是一個明智的舉措,我會用它更新代碼。但是它仍然無法解決檢測手機瀏覽器與桌面瀏覽器的更大問題。 – chonax

回答

0
match($host,/m./) { 
      $newHost = $host 
      $newHost { 
       replace(/m./,"www.") 
      } 
      $redirect = "http://"+$newHost+$path 
      export("Location",$redirect) 
     } 

試試這個。希望這會對你有用,因爲這對我有用。

相關問題