2011-02-07 56 views
3

我正在用jQuery Mobile框架構建我公司網站的一個版本。儘管通過JavaScript重定向將移動設備用戶移動到我們的移動網站相當容易,但我不想阻止用戶查看經典網站。經典視圖/移動視圖開關?

完成此操作的最佳方法是什麼?

我們的正常網址是:

us.companyname.com/

我們的移動網站將是:

us.companyname.com/mobile

有一些限制,因爲我們沒有持有域名,我們的英國同行也這樣做,所以在companyname.com級別完成任何事情需要一定的耐心。基本上,如果來自北美的任何人訪問companyname.com,他們將自動重定向到us.companyname.com。

我確實可以完全訪問我們的網站(主要用PHP &表達式引擎編寫,之前我在這裏),只要我不搞亂任何東西,我可以自由地做任何事情。

+0

可能重複:http://stackoverflow.com/questions/4181466/view-full-website-not-mobile-version-iphone – 2011-02-07 18:12:46

回答

5

首先,這樣的事情,我不會用Javascript /查詢做到這一點,導致什麼是如果用戶沒有激活js?做這個服務器端更好。

事情是這樣的:

$mobile = array("IPHONE", "IPAD"); 
$flagMobileVersion = false; 
if($_SESSION['version']!="mobile"){ //happens only at first visit 
for($i=0;$i<=count($mobile)-1;$i++){ 
    if(!strrpos(strtoupper($_SERVER['HTTP_USER_AGENT']), $mobile[$i])) 
    { 
     $flagMobileVersion = true; 
     break; 
    } 
} 

if($flagMobileVersion) { 
$_SESSION['version'] = "mobile"; 
Header("www.mydomain.net/mobile"); //on first Visit 
} 
+0

+1,有一個cookie工作或會話變量絕對是最好的選擇。我只是意識到,如果用戶點擊鏈接返回主頁,我的解決方案可能會崩潰,除非您設置更持久的方式來檢查用戶是否需要移動版本。 – 2011-02-07 18:14:45

0

會是這樣的工作:

所有你需要做的是不同的包裝聲明if,使內部的主網頁上window.location重定向代​​碼確定noredirect標誌未設置爲true。唯一的挑戰是隔離noredirect查詢字符串,但this Stack Overflow question可能會有所幫助。