洪石陳SEO:織夢(dedecms)如何進行移動化 織夢Dedecms網站該如何移動化,怎么進行移動適配可以在手機端獲得較好的排名?得分幾步?近日,站長學院版主洪石陳分享了一篇關于Dedecms網站移動化的文章,據該文章表示,Dedecms網站移動化只需五步便可搞定!他是如何做到的呢? 第一步:安裝Dedecms移動站點的兩種方式 (1)下載新版本直接安裝使用,Dedecms版本:V5.7SP1正式版(2015-06-18)該版本包含舊版本所沒有的移動站點功能。 (2)老版本升級(僅針對增加移動站點功能),下載最新版本(注意網站編碼需與原站一致),復制壓縮包中以下文件到原站對應目錄下: 注意: 如果原站有非默認模板,如某欄目模板為/templets/defaultst_default_news.htm,可將/templets/defaultst_default_m.htm復制一份改名為list_default_news _m.htm。 即:pc端網站模板需有對應的移動端網站模板,后者文件名為前者文件名后_m。 安裝或升級dedecms完成,此時應該就可以進行移動跳轉適配了,但,dedecms 20150618版本提供的移動站點功能在使用過程中發現一些問題,需要進行修改后才可正常使用,所以有了下面的dedecms修改步驟 第二步:修改Dedecms (1)原站如做了將DATA移到根目錄外的安全設置,需修改/m/index.php代碼: if(!file_exists(dirname(__FILE__).'/../data/common.inc.php')) { header('Location:install/index.php'); exit(); } 將其中/../data/common.inc.php改為/../../data/common.inc.php,或直接將以上5行代碼刪除。 (2) 移動站點首頁在會第一次訪問時自動生成首頁靜態文件,前提是/m/目錄需設置為可寫權限,否則將無法正常更新。之后更新首頁靜態文件需登陸后臺手動更新:在更新主頁HTML中將選擇主頁模板改為default/index_m.htm,將主頁位置改為../m/index.html,再生成主頁靜態文件。 注:該版本號稱自動生成HTML版,但默認移動站模板里卻有a href=index.php的動態首頁鏈接,需替換為a href=index.html靜態鏈接形式。 ※如覺得使用靜態頁面麻煩,想將首頁設置為動態瀏覽,可修改/m/index.php: $row['showmod'] = isset($row['showmod'])? $row['showmod'] : 0; if ($row['showmod'] == 1) { $pv-SaveToHtml(dirname(__FILE__).'/index.html'); include(dirname(__FILE__).'/index.html'); exit(); } else { $pv-Display(); exit(); } 以上代碼替換為一行: $pv-Display(); 第三步:首頁圖文資訊部分的url為pc端鏈接,修改為移動端鏈接: 搜索模板/templets/default/index_m.htm中所有a href=[field:arcurl/] ,替換為a href=view.php?aid=[field:id/] 第四步:通用頭部含有搜索框,搜索跳轉至pc端搜索頁面,建議刪除: 在/templets/default/header_m.htm中刪除以下代碼: form class=am-topbar-form am-topbar-left am-form-inline am-topbar-right role=search action={dede:global.cfg_cmsurl/}/plus/search.php input type=hidden name=mobile value=1 / input type=hidden name=kwtype value=0 / p class=am-form-group input name=q type=text class=am-form-field am-input-sm placeholder=輸入關鍵詞 /p button type=submit class=am-btn am-btn-default am-btn-sm搜索/button /form 第五步: 移動站點默認使用二級目錄,但目前移動適配需要使用二級域名(前段時間是可以使用二級目錄的,但目前已調整,不能再提交二級目錄),所以我們要設置移動站可通過二級域名訪問,解析二級域名至網站所在服務器ip,并在服務器/空間上將二級域名綁定到/m/目錄。 成功設置二級域名后,通過二級域名瀏覽網站會發現圖片均無法顯示,原因是圖片路徑有誤圖片路徑為/uploads/x/y.jpg 相對根目錄路徑形式,在pc站頁面中顯示正常,因為pc站域名下存在該目錄,而二級域名綁定的是二級目錄,其中并不存在該目錄, 所以訪問圖片會返回 404錯誤。對此,有多種解決方案,下面提供兩個思路(示例pc站:www.nt090.com ;移動站:m.nt090.com): (1)URL 重寫(推薦) 將對/uploads/的訪問重寫 至/uploads/,apache環境下,在/m/目錄中的.htaccess(如無則需新建)中增加以下代碼即可: RewriteEngine on RewriteCond %{ [NC] RewriteRule ^uploads/(.*)$ /uploads/$1 [L] iis環境下類似規則。 (2)修改模板路徑 在所有移動端模板中的head/head中增加: base href= / 再將代碼中的 a href=list.php改為完整路徑a href= /list.php a href=viewphp改為完整路徑a href= /view.php 另:需將根目錄下的/images/defaultpic.gif(縮略圖默認圖片)復制到/m/目錄下,否則列表頁中如存在無縮略圖的文章,對應縮略圖位置會無法正常顯示圖片。 其他: 1、如有欄目不想在首頁下方列表區域或通用頭部顯示,可在后臺對應的欄目管理/常規選項中設置隱藏。 2、為了更好的實現pc端和移動端匹配效果,可在pc端模板增加類似如下代碼: 首頁 meta http-equiv=mobile-agent content=format=xhtml;url={dede:global.cfg_mobileurl/}/ 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={dede:global.cfg_mobileurl/}/;}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}} /script 欄目頁 meta http-equiv=mobile-agent content=format=xhtml;url={dede:global.cfg_mobileurl/}/list.php?tid={dede:field.id/} 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={dede:global.cfg_mobileurl/}/list.php?tid={dede:field.id/};}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}} /script 文章頁 meta http-equiv=mobile-agent content=format=xhtml;url={dede:global.cfg_mobileurl/}/view.php?aid={dede:field.id/} 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={dede:global.cfg_mobileurl/}/view.php?aid={dede:field.id/};}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}} /script 代碼中的{dede:global.cfg_mobileurl/}部分要替換為包含),如不想修改模板里的相關代碼,也可修改/include/common.inc.php中的$cfg_mobileurl變量賦值為二級域名。 以上代碼為dedecms新版模板所使用,第一行meta標簽代碼為百度發現跳轉適配關系的方式(可同時使用)之一Meta標記,下面幾行javascript代碼的功能是識別是否移動端設備訪問,如是則將當前pc端頁面自動跳轉到匹配的移動端頁面。 另外,還可使用link標簽以便于百度更好地發現PC站和移動站的移動適配關系,在模板的head/head標簽內加入如下代碼: PC站首頁模板: link rel=alternate media=only screen and (max-width: 640px) href= PC站欄目頁模板: link rel=alternate media=only screen and (max-width: 640px) href=/list.php?tid={dede:field.id/} PC站文章頁模板: link rel=alternate media=only screen and (max-width: 640px) href= /view.php?aid={dede:field.id/} 移動站首頁模板: link rel=canonical href=/ / 欄目頁模板: link rel=canonical href={dede:type typeid='0' row=1}[field:typelink /]{/dede:type}/ 文章頁模板: link rel=canonical href=/{dede:field.id runphp='yes'}$id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];{/dede:field.id}/ 至此,移動站架設基本成型。 提交移動跳轉適配 URL對應關系示例: 適配方式: 欄目頁的對應關系沒有規律,且數量較少,使用URL適配 ;文章頁為有規律的網址,且數量多,使用規則適配。 提交文章頁規則適配(如圖): 提交首頁和欄目頁URL適配(如圖): 對于欄目較多的Dedecms網站,人工列出所有的欄目頁URL對顯然很費事,這里推薦一個方法可以輕松解決該問題: ※在模板中嵌入以下代碼,對應前臺頁面中即可顯示所有欄目的URL對,復制粘貼即可: {dede:channelartlist row=100 typeid='top'} {dede:field name='typeurl'/} /list.php?tid={dede:field name='id'/}br {dede:channel type='son' noself='true'} [field:typelink/] /list.php?tid=[field:id/]br {/dede:channel} {/dede:channelartlist} ※提交完規則適配,等待百度審核。 如果所提交的適配關系有誤,處理狀態將很快會出現校驗失敗的提示。 很長一段時間以來,很多站長應該都發現移動適配校驗中時間很長,對于此問題,目前官方已做了改進,校驗效率有了明顯提升,以前所提交的適配關系發現正在陸續通過。 以下為很早前提交、近期已通過適配的一個網站示例: 本文方案基于Dedecms尚未成熟的移動站功能,雖較為簡單易用,但美中不足的是目前移動站URL僅能使用動態地址,如需使用靜態地址需要通過設置偽靜態來實現,或者等待Dedecms發布下一個較為成熟的版本,再或者直接對Dedecms進行二次開發實現移動站的靜態頁面生成功能,對于此類操作本文就不再延伸 |