用一個DedeCMS搭建PC端和移動端方法比較多,所用標簽相同,會遇到鏈接路徑出錯,比如首頁鏈接、面包屑導航、上下頁鏈接等。xiuz采用不動源文件,運用PHP的str_replace函數替換URL的方法,采用絕對路徑兼容PC、移動端。
設置并啟用絕對地址
系統基本設置 -> 核心設置,找到
(是/否)支持多站點,開啟此項后附件、欄目連接、arclist內容啟用絕對網址:選擇是
建議開啟絕對路徑,這樣在PC端的欄目連接、文章鏈接、圖片地址都是絕對路徑。在移動端所有URL路徑就可以用str_replace函數進行替換。
相對路徑:頁面出現的鏈接沒有完整的URL,如
<a href="/seo/">SEO優化入門</a>
絕對路徑:頁面出現的鏈接是完成的URL,如
<a href="http://www.CUOxin.com/seo/">SEO優化入門</a>
兩種路徑訪問的頁面是一樣的,但絕對路徑有效集中頁面權重,更利于SEO優化。
在沒有做301之前,用下面的URL都可以訪問首頁。這么多頁面100%相同,頁面如果采用相對路徑,蜘蛛會沿著URL反復抓取,權重會分散。采用絕對路徑后,蜘蛛即使從不同的URL進入,也只沿著一種URL路徑抓取內容。
http://www.CUOxin.com/http://CUOxin.com/http://www.CUOxin.com/index.htmlhttp://www.CUOxin.com/index.phphttp://CUOxin.com/index.htmlhttp://CUOxin.com/index.php
WAP移動端搭建
如果WAP移動端在PC端的子目錄下,即首頁路徑分別是:
PC端首頁URL為:http://www.CUOxin.com/WAP端首頁URL為:http://www.CUOxin.com/wap/
①搭建移動端方法,參考文章《DedeCMS一個后臺管理PC和移動端純靜態非官方版》;
②采用二級域名解析到二級目錄的方法,虛擬主機一般不支持綁定,但是可以通過技術手段完成,可以參考<<虛擬主機完成織夢手機站綁定二級域名>>,以實現WAP端首頁URL為 http://wap.CUOxin.com/
在WAP模板中運用str_replace函數替換單個或多個內容
①面包屑導航(當前所在位置)
面包屑導航告訴用戶所在位置,搜索引擎也沿著這些路徑繼續抓取。調用標簽是{dede:field.position/},采用絕對路徑之后,
PC端面包導航HTML一般是:
<strong>當前位置:</strong><a href="http://www.CUOxin.com">首頁</a> > <a href="http://www.CUOxin.com/seo/">SEO優化入門</a>
移動端面包屑導航HTML一般是:
<strong>當前位置:</strong><a href="http://www.CUOxin.com">首頁</a> > <a href="http://www.CUOxin.com/wap/seo/">SEO優化入門</a>
{dede:field.positon/}必須要替換兩個地方:首頁URL地址、欄目URL地址。
PHP str_replace函數把兩處替換的地方放到array數組里面,該函數執行順序的問題不展開闡述,移動端模板的面包屑導航(注意下面橙色部分的寫法):
{dede:field name="position" function="str_replace(array('http://www.CUOxin.com','http://wap.CUOxin.com/wap'),'http://wap.vi586.com',@me)"/}
最后HTML效果
<strong>當前位置:</strong><a href="http://wap.CUOxin.com">首頁</a> > <a href="http://wap.CUOxin.com/seo/">SEO優化入門</a> >
②欄目頁欄目和文章鏈接修改
<a href="{dede:field.typeurl function='str_replace("http://www.CUOxin.com","http://wap.CUOxin.com",@me)'/}"> 欄目:{dede:field.typename/}</a>{dede:list pagesize='10'} <a href="[field:arcurl function='str_replace("http://www.CUOxin.com","http://wap.CUOxin.com",@me)'/]"> 標題:[field:title/] </a>{/dede:list}