原帖由lwq842635發表在discuz官方論壇,下面是轉發:
目前我使用的是discuz x3.2 主要用到門戶 論壇。以前一直用百度的siteapp做移動端的站點,但是想非常的不好,而且URL跟PC站非常的不一致。在沒有做移動端之前網站訪問量在15萬左右PV,前段時間把移動端做好了了,訪問量一隻在上升,現在pv每天在25-30萬之間,且移動的訪問比較基本快接近50%了看下圖:這裡抓取了80天的數據,大概是9月1號上線的移動端,有很明顯的變化。流量數據:
終端數據:
以上是基本數據,接下來回到正題。
我的方案是PC站和移動站分開,比如PC域名:www.discuz.com 移動端則是:m.discuz.com 這也是目前比較主流的方式了,看到很多大站都是這麼做的。然後分別創建兩個站點PC站和移動站,PC站和移動站只有模板以及站點配置不同,配置主要是域名以及網站導航這些。其他網站程序是一樣,數據庫是也一樣。因為我們已經有PC站了所有直接複製PC站的所有數據新建一個站包括數據庫鏈接文件,這裡要保證你新建的網站也可以訪問了。然後這裡的重點是既然移動站的域名以及配置不同所以要另外創一個建數據庫,然後創建三張數據表看圖
這三張數據表可以直接在原來數據庫的phpmyadmin導出,然後導入到現在新創建的這個數據庫中。三個表 一個是導航數據表pre_common_nav 一個是設置數據表pre_common_setting 還有一個是 系統緩存表pre_common_syscache,因為我的網站用到了門戶,而系統緩存表裡面存儲門戶欄目的鏈接,如果不創建這個表,移動端訪問文章頁通過麵包屑導航鏈接到欄目是PC站的URL。
然後最最重點是用到了Discuz!的多數據庫服務器功能(這個功能的意思我就不解釋了大家百度一下就知道)因為我們現在有兩個站點PC站和移動站,現在是兩個站點是調用同一個數據庫只是域名不同而已,而我們要的效果是PC站還是調用原來數據的所有數據,移動站調用原來數據庫的所有數據但上面提到那三個表,需要調用我們新創建的數據庫中的那三個表。請看Discuz!的多數據庫服務器功能代碼:文件物理地址/config/config_global.php 看圖
以下是在discuz 論壇引用的
- 雖然很多站點是單數據庫服務器,但是有些大站點用的是多數據庫服務器,這裡就存在了訪問遠程數據庫的問題。
- 幸好Discuz!提供了這個功能,只需要把config的配置改下就可以了。
- 在config文件中,加下類似下面的代碼,就可以定義一個新的數據庫服務器
- //1號數據庫服務器
- $_config['db']['1']['dbhost'] = 'localhost';
- $_config['db']['1']['dbuser'] = 'root';
- $_config['db']['1']['dbpw'] = 'root';
- $_config['db']['1']['dbcharset'] = 'gbk';
- $_config['db']['1']['pconnect'] = '0';
- $_config['db']['1']['dbname'] = 'discuz1';
- $_config['db']['1']['tablepre'] = 'pre_';
- //2號數據庫服務器
- $_config['db']['2']['dbhost'] = 'localhost1';
- $_config['db']['2']['dbuser'] = 'root';
- $_config['db']['2']['dbpw'] = 'root';
- $_config['db']['2']['dbcharset'] = 'gbk';
- $_config['db']['2']['pconnect'] = '0';
- $_config['db']['2']['dbname'] = 'discuz2';
- $_config['db']['2']['tablepre'] = 'cdb_';
- $_config['db']['map']['common_member'] = 2; //這句表明訪問common_member表的操作一律從2號數據庫服務器中讀取
複製代碼 完成以上我們就創建了兩個站點PC站和移動站,然後我們就登陸移動站後台——全局——站點信息裡面的網站 URL:填寫你的移動站域名。然後更新數據緩存,順便設置移動站的導航,此時移動站的域名就可以完美訪問了。包括網站所有連接都是跟PC站對應的,論壇版塊、帖子偽靜態都可以的。
接下來我們開始編寫移動站的模板了,模板編寫比較大的工程了,這裡我也沒有什麼分享的,我自己也是百度上搜索一下知識慢慢去寫的,大概一個星期基本上寫好了,至於美觀不美觀,大家懂的因為我也是草根出身基本都是自學的。
如果哪位大俠是做前端、美工的可以給我一些模板編寫的建議或者幫我美化美化一下也可以,我則可以幫你做做這個移動站的搭建,或者幫你做做SEO方案、策劃等等等等........
模板寫好了以後移動站基本就OK,然後我們就可以去百度站長平台提交移動適配了哦。
基於以上寫的有點潦草,本人表達能力有限,如果有不懂得地方請大家自己反覆去斟酌,實在不行就跟帖留言把,我有時間的話就幫大家解決一下問題。
移動設備訪問PC站完美跳轉到移動站的JS代碼:下面代碼中www是pc站域名的前綴,m則是移動站的前綴。
我的網站是把一下代碼直接放到了全局JS裡面:物理地址static/js/common.js
- var WebUrl = window.location.href;
- var WapUrl = WebUrl.replace('www','m');
- var mobileAgent = new Array("iphone", "ipod", "android", "mobile", "blackberry", "webos", "incognito", "webmate", "bada", "nokia", "lg", "ucweb", "skyfire");
- var browser = navigator.userAgent.toLowerCase();
- var isMobile = false;
- for(var i=0; i<mobileAgent.length; i++)
- {
- if(browser.indexOf(mobileAgent[i])!=-1)
- {
- isMobile = true;
- location.href = WapUrl;
- break;
- }
- }
複製代碼 針對上面的方案,有用戶跟帖提出了如下意見:
我不想給樓主掃興,昨天回了個帖,又刪掉了。
但想來想去,還是說一說我觀點:樓主用了大量時間精力做的這個事,我認為是無用功。
因為如果目的僅僅是為了讓百度分別收錄PC站和手機版頁面,然後從百度來流量的話,百度已經推出了三種網站地圖代碼
<mobile:mobile type="mobile"/>
<mobile:mobile type="pc,mobile"/>
只要在網站地圖上標注,再提交到百度,百度就能識別你這個是PC版、手機版還是PC與手機共用版。
PC與手機共用版,就是自動響應式網頁。DZ論壇這種動態頁面,官方手機版已經做好了自動響應代碼,電腦訪問就顯示電腦模板,手機訪問顯示的是手機模板。而只要在網站地圖中添加<mobile:mobile type="pc,mobile"/>這行代碼,百度就能看明白。
我的網站雖然流量不大,但電腦端與手機端都能來搜索流量,說明百度已能分別收錄。
當然這個只是百度的代碼,也許只有百度承認。如果360或者谷歌的流量大,也許按樓主的方式做一下也行。不過那也僅限於靜態頁面,比如DEDE程序,需要做手機版,我寫過一系列教程:共用同一個數據庫裝兩個DEDE程序,一個電腦版一個手機版
動態的是可以自動響應的,不需要做重複頁面。如果想在域名上區別,DZ的後台可以綁定手機版域名。
反正就是以DZ論壇來說,沒有理由再複製一套網頁。
|