DedeCMS根據用戶訪問設備JS跳轉到與PC對應的移動端URL,如何調用對應的頁面URL?URL種類有首頁、列表頁、內容頁;又分為動態URL(帶或不帶參數,一般URL"?"后面的就是參數)、靜態URL。
帶參數的動態URL:http://www.CUOxin.com/plus/list.php?tid=85&zxfg=%B5%D8%D6%D0%BA%A3靜態URL:http://www.CUOxin.com/zhuangxiu_xiaoguotu/
上面兩個PC端URL分別跳轉到如下移動端URL
http://www.CUOxin.com/plus/wap_list.php?tid=85&zxfg=%B5%D8%D6%D0%BA%A3http://m.CUOxin.com/dedecms/
如果不設置好,雖然頁面不一樣,但大體上是一樣,蜘蛛會重復收錄PC端和WAP移動端,容易造成分權。
一般的處理辦法是,PC用alternate聲明與之對應的移動端URL,移動端用canonical聲明只收錄PC端的URL。
把下面代碼放在PC端的</head>之前。下面稱為通用代碼。
<link rel="alternate" media="only screen and (max-width: 640px)" href="http://m.CUOxin.com/"><meta http-equiv="mobile-agent" content="format=xhtml;url=http://m.CUOxin.com/"><script type="text/javascript">if(window.location.toString().indexOf('pref=padindex') != -1){}else{if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){if(window.location.href.indexOf("?mobile")<0){try{if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){window.location.href="http://wap.v25j.com/";}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}}</script>
先來看看PC端URL不帶參數的跳轉到移動端調用方法
這是列表頁的URL,列表頁、內容頁都可以用{dede:field.typeurl /}獲取,PC端對應頁面需要用到PHP str_replace函數,把下面代碼替換通用代碼對應部分
{dede:field.typeurl function = "str_replace('http://www.CUOxin.com' , 'http://wap.CUOxin.com' , @me);"/}
說明:可以根據實際需要進行修改橙色部分內容,前面一個是PC端的URL,后面是WAP移動端URL。
相同的道理,WAP移動端內容頁URL調用
{dede:field.arcurl function = "str_replace('http://www.CUOxin.com' , 'http://wap.CUOxin.com' , @me)"/}
PC端URL帶參數的跳轉到移動端調用方法
這是前面做的一個重慶裝修公司站裝修效果圖篩選的遇到的問題,當時做PC與WAP靜態URL,參考文章《DedeCMS一個后臺管理PC移動端純靜態非官方版》,但篩選部分還是動態URL,先看下面的帶參數的URL:
http://www.CUOxin.com/plus/list.php?tid=85&zxfg=%B5%D8%D6%D0%BA%A3
跳轉到
http://www.CUOxin.com/plus/wap_list.php?tid=85&zxfg=%B5%D8%D6%D0%BA%A3
可直接復制鏈接看具體形式,只能通過其他方法獲取當前URL,再用str_replace改寫,獲取方法如下:
{dede:geturl runphp='yes'} @me = GetCurUrl(); //獲取當前URL @me = str_replace('/plus/list.php' , 'http://www.CUOxin.com/plus/wap_list.php' , @me);{/dede:geturl}
geturl函數調用的是相對路徑,根據實際需要修改為絕對路徑。如果是用二級域名的URL,直接把二級域名寫在geturl函數前面即可。
注意:此方法不適用靜態頁面,不過如果是篩選(帶參數)可以完全使用動態頁面。
這個就簡單了,不管是靜態URL還是動態URL都通用。把下面代碼替換通用代碼相應部分。
{dede:field.arcurl function="str_replace('http://www.CUOxin.com' , 'http://m.CUOxin.com' , @me)"/}
在</head>之前添加canonical聲明。
<link rel="canonical" href="http://www.CUOxin.com/">
新聞熱點
疑難解答