POST TIME:2018-03-19 22:21
這兩天逛了下織夢(mèng)論壇,發(fā)現(xiàn)很多站長(zhǎng)朋友對(duì)DedeCMS 5.7問(wèn)答模塊的偽靜態(tài)問(wèn)題比較關(guān)心,普遍反映之前DedeCMS 5.5、5.6的問(wèn)答偽靜態(tài)規(guī)則不能用了。事實(shí)上,DedeCMS 5.7問(wèn)答偽靜態(tài)的實(shí)現(xiàn)并不復(fù)雜,只要弄清楚偽靜態(tài)的實(shí)現(xiàn)原理和思路,還是很容易搞定的。今天,小拼就分享下DedeCMS 5.7問(wèn)答偽靜態(tài)的完美實(shí)現(xiàn)辦法。
我們先來(lái)看下DedeCMS 5.7問(wèn)答模塊的官方升級(jí)說(shuō)明:
1)重構(gòu)問(wèn)答模塊,采用模塊MVC架構(gòu)進(jìn)行重構(gòu);
2)問(wèn)答模塊支持偽靜態(tài)設(shè)置;
3)重新設(shè)計(jì)問(wèn)答模塊前臺(tái)界面,新界面同系統(tǒng)整體界面一致;
4)客服中心采用新版問(wèn)答模塊改版;
5)問(wèn)答模塊增加對(duì)二級(jí)域名的支持。
通過(guò)上述說(shuō)明,結(jié)合DedeCMS V5.7的問(wèn)答源碼,基本可以確定兩個(gè)信息:
1)DedeCMS 5.7問(wèn)答模塊仍然支持偽靜態(tài);
2)由于織夢(mèng)問(wèn)答模塊升級(jí),使用了新的URL形式,歷史版本的問(wèn)答系統(tǒng)偽靜態(tài)規(guī)則已經(jīng)不適用于新版了,這也DedeCMS 5.7問(wèn)答偽靜態(tài)實(shí)現(xiàn)要解決的重點(diǎn)。
DedeCMS 5.7問(wèn)答偽靜態(tài)高級(jí)解決方案
1)你的主機(jī)是否支持偽靜態(tài)?這點(diǎn)很重要,不然下面說(shuō)再多也是白搭。簡(jiǎn)單說(shuō)明下,Apache服務(wù)器偽靜態(tài)實(shí)現(xiàn)需要借助.htaccess文件;IIS服務(wù)器偽靜態(tài)實(shí)現(xiàn)則需要加載Rewrite組件,然后配置httpd.ini文件;
2)DedeCMS V5.7管理后臺(tái)-系統(tǒng)-系統(tǒng)基本參數(shù)-模塊設(shè)置,“是否使用Rewrite”選擇“是”,“問(wèn)答模塊的二級(jí)域名”填寫(xiě)“ask”;
這里為什么要填寫(xiě)問(wèn)答模塊的二級(jí)域名?因?yàn)樾∑吹膫戊o態(tài)修改方法是參考DedeCMS V5.5和5.6問(wèn)答的URL形式,目標(biāo)URL以“.html”結(jié)尾,相信對(duì)使用過(guò)歷史版本問(wèn)答系統(tǒng)的朋友都不會(huì)陌生。
如:/ask/question-4.html這樣的URL在DedeCMS V5.7中會(huì)有一個(gè)問(wèn)題,許多以“?ct=”開(kāi)頭的鏈接都會(huì)訪(fǎng)問(wèn)不了,如“我的提問(wèn)”、“我的回答”、“提高懸賞”、“編輯/刪除問(wèn)題”等,會(huì)產(chǎn)生404錯(cuò)誤頁(yè)面。
如:/ask/question-4.html?ct=myask其實(shí)這種現(xiàn)象的產(chǎn)生,主要是模板里鏈接的路徑問(wèn)題,采用的都是相對(duì)路徑。而啟用問(wèn)答模塊的二級(jí)域名,再結(jié)合模板修改就可以很好的解決。當(dāng)然,你也可以修改模板,實(shí)現(xiàn)問(wèn)答全站偽靜態(tài),只需多加幾條偽靜態(tài)規(guī)則即可。
3)修改DedeCMS 5.7問(wèn)答模塊碼源和模板,考慮到個(gè)別站長(zhǎng)對(duì)HTML和PHP代碼不太熟悉,下面直接把小拼修改好的問(wèn)答模塊共享出來(lái):
DedeCMS 5.7問(wèn)答模塊源碼修改+偽靜態(tài)規(guī)則
下載完畢后,直接覆蓋就可以使用了,小拼不干“坑爹”的事,都是官方源碼基礎(chǔ)上修改的,絕無(wú)第三方垃圾信息存在,放心去用吧:-)
DedeCMS 5.7問(wèn)答偽靜態(tài)修改注意事項(xiàng)
1)注意備份你站點(diǎn)的ask文件夾,防止出錯(cuò),方便還原;
2)以上的問(wèn)答偽靜態(tài)僅供DedeCMS5.7 GBK版本使用,UTF版本請(qǐng)自行轉(zhuǎn)換下代碼;
3)考慮到SEO,很多織夢(mèng)老用戶(hù)都是V5.1~V5.6版本升級(jí)至V5.7的,小拼提供的修改辦法保證了歷史問(wèn)答版本URL的一致性,否則URL改變是很影響搜索引擎收錄和排名的;
4)你可以參考下小拼的問(wèn)答偽靜態(tài)實(shí)現(xiàn)思路,總結(jié)出一套符合個(gè)人站點(diǎn)風(fēng)格的偽靜態(tài)方法。
DedeCMS 5.7問(wèn)答偽靜態(tài)初級(jí)解決方案
如果你怕麻煩,還心存疑慮,那就直接使用官方默認(rèn)的偽靜態(tài)方法了,僅實(shí)現(xiàn)問(wèn)答欄目頁(yè)和詳細(xì)頁(yè)的偽靜態(tài),可以使用下面的偽靜態(tài)規(guī)則:
IIS服務(wù)器,在httpd.ini文件中加入:
#問(wèn)答首頁(yè)
#RewriteRule ^(.*)/index.html $1/index.php
#問(wèn)答詳細(xì)頁(yè)
RewriteRule ^(.*)/([0-9]+).html $1/?ct=question&askaid=$2
#問(wèn)答一級(jí)欄目
#RewriteRule ^(.*)/([0-9]+) $1/?ct=browser&tid=$2
#問(wèn)答子欄目
#RewriteRule ^(.*)/t([0-9]+) $1/?ct=browser&tid2=$2
Apache服務(wù)器,在.htaccess文件中加入:
RewriteRule ^index.html$ index.php
RewriteRule ^([0-9]+).html$ ?ct=question&askaid=$1
RewriteRule ^([0-9]+)$ ?ct=browser&tid=$1
RewriteRule ^t([0-9]+)$ ?ct=browser&tid2=$1