面包屑導(dǎo)航在不管在SEO還是在用戶體驗(yàn)都是極其重要的要素,清晰的內(nèi)鏈布局結(jié)構(gòu)對(duì)搜索引擎來(lái)說(shuō)能引導(dǎo)蜘蛛順利抓取全站的內(nèi)容;對(duì)用戶來(lái)說(shuō),可以知道自己所瀏覽的頁(yè)面的位置,便于用戶進(jìn)一步點(diǎn)擊,貢獻(xiàn)PV量。但是對(duì)一些中英文站點(diǎn)來(lái)說(shuō)就比較麻煩了,看看中文網(wǎng)站頁(yè)面標(biāo)題和面包屑導(dǎo)航結(jié)構(gòu):
一般三層目錄的的頁(yè)面標(biāo)題結(jié)構(gòu)是:
文章標(biāo)題_欄目標(biāo)題_網(wǎng)站名稱
對(duì)應(yīng)的面包屑導(dǎo)航一般是:
首頁(yè) > 欄目標(biāo)題 > 文章標(biāo)題
三層及以上的標(biāo)題結(jié)構(gòu)是:
文章標(biāo)題_三級(jí)欄目標(biāo)題_二級(jí)欄目標(biāo)題_網(wǎng)站名稱
對(duì)應(yīng)的面包屑導(dǎo)航一般是:
首頁(yè) > 二級(jí)欄目標(biāo)題 > 三級(jí)欄目標(biāo)題 > 文章標(biāo)題
后面的文章標(biāo)題可以去掉也可以保留,對(duì)SEO來(lái)說(shuō)并不影響。
內(nèi)容管理系統(tǒng)(CMS)比較多,實(shí)現(xiàn)這樣的的效果比較容易,但是對(duì)中英文網(wǎng)站來(lái)說(shuō)支持度不是很好,很多站長(zhǎng)不會(huì)選擇兩個(gè)空間分別裝中英文系統(tǒng),能不能實(shí)現(xiàn)在一個(gè)空間里實(shí)現(xiàn)中英文網(wǎng)站的跳轉(zhuǎn)呢?這里舉例織夢(mèng)dedecms,實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)站做偽靜態(tài)并做好如上標(biāo)題和面包屑導(dǎo)航。介紹兩種筆者試驗(yàn)成功的方法:
在服務(wù)器空間里安裝兩個(gè)dedecms,適合一般的中英文企業(yè)站(推薦)
實(shí)現(xiàn)方法簡(jiǎn)單粗暴,全部采用動(dòng)態(tài)頁(yè)面?zhèn)戊o態(tài)的方法,讓空間占用最小,一般企業(yè)站的配置不需要太高,訪問(wèn)量也不會(huì)很多,節(jié)約了服務(wù)器和維護(hù)的成本。適合2-4層目錄結(jié)構(gòu)的站點(diǎn)。
數(shù)據(jù)庫(kù)安裝方法
中英文網(wǎng)站安裝方法就不具體說(shuō)明了,一個(gè)安裝在服務(wù)器空間的根目錄,另外一個(gè)安裝在子目錄里,共享空間但數(shù)據(jù)庫(kù)內(nèi)容不一樣,比如根目錄的數(shù)據(jù)庫(kù)前綴為“dede_”,子目錄的數(shù)據(jù)庫(kù)前綴為“dede2_”。
子目錄和子域名跳轉(zhuǎn)
比如中文域名為:www.vi586.com,英文域名為二級(jí)域名:en.vi586.com,用戶訪問(wèn)http://en.vi586.com相當(dāng)于訪問(wèn)子目錄http://www.vi586.com/en,對(duì)于用戶來(lái)說(shuō)這樣的路徑更清晰,百度蜘蛛也認(rèn)為這是一個(gè)子站點(diǎn),給予的權(quán)重相對(duì)比子目錄要高。
實(shí)現(xiàn)子域名解析到子目錄的方法參考文章《萬(wàn)網(wǎng)利用.htaccess完美實(shí)現(xiàn)子域名跳轉(zhuǎn)到子目錄》。
按照上面的方法可以實(shí)現(xiàn)子域名解析到子目錄并成功跳轉(zhuǎn),但是會(huì)發(fā)現(xiàn)這樣的權(quán)重會(huì)更分散,因?yàn)樽佑蛎械逆溄佣际穷愃?/p>
<a href="http://mengdiqiu.com.cn/en/a/>頻道名稱或文章標(biāo)題</a>
而我們想實(shí)現(xiàn)的如下的效果,才能把權(quán)重集中。
<a href="http://en.xiuzhanwang.com/a/">頻道名稱或文章標(biāo)題</a>
最完美實(shí)現(xiàn)方法由于篇幅限制,請(qǐng)移步文章《DedeCMSV5.7二次開(kāi)發(fā)常用PHP函數(shù)》。
面包屑導(dǎo)航設(shè)置注意
英文站點(diǎn)的設(shè)置方法跟中文的一樣,只需要把中文換成英文的就好,面包屑導(dǎo)航也可以使用{dede:field name='position'/},但是“首頁(yè)”還是中文的修改方法是:系統(tǒng)-系統(tǒng)基本參數(shù)-主頁(yè)鏈接名,改為“HOME”,
英文站點(diǎn)的面包屑導(dǎo)航結(jié)構(gòu)是:
HOME > CHANNEL > TITLE
標(biāo)題設(shè)置
對(duì)應(yīng)的標(biāo)題結(jié)構(gòu)是:
TITLE_CHANNEL_WEBNAME
在服務(wù)器空間安裝一個(gè)dedecms(如果認(rèn)為不麻煩的繼續(xù)往下讀)
一個(gè)空間安裝實(shí)際上就是讓英文站成為一個(gè)子頻道,選用合適的模板就行,由于中英文都需要用到面包屑導(dǎo)航和頁(yè)面標(biāo)題,設(shè)置方法稍微麻煩些,而且對(duì)百度蜘蛛來(lái)說(shuō)也分不清這是子網(wǎng)站還是子目錄,特別是動(dòng)態(tài)網(wǎng)站來(lái)說(shuō),路徑是硬傷,不能做到上面的方法用.htaccess重寫(xiě),如果只是展示不考慮優(yōu)化的話可以禁止蜘蛛抓取,而且不能用動(dòng)態(tài)網(wǎng)站的方法,否則又要寫(xiě)正則表達(dá)式。
標(biāo)題設(shè)置,修改次級(jí)欄目title的斜杠符號(hào)"/"
有站長(zhǎng)擔(dān)心"/"會(huì)讓蜘蛛認(rèn)為這是子目錄的意思,其實(shí)在標(biāo)題權(quán)重中,符號(hào)是不影響的,只是給人看起來(lái)不一樣而已。也比較少見(jiàn)如"#","^","$"之類的,較常用的還是"_","-","|",如果為三層結(jié)構(gòu),列表頁(yè)一般顯示如下,不是我們想要的效果
TITLE / CHANNEL2 / CHANNEL1_WEBNAME
打開(kāi)/include/arc.listview.class,找到
$this->Fields['title'] = ereg_replace("[<>]"," / ",$this->TypeLink->GetPositionLink(false));
修改為
$this->Fields['title'] = ereg_replace("[<>]"," - ",$this->TypeLink->GetPositionLink(false));
注意橫線“-”兩邊還有兩個(gè)空格,可以根據(jù)需要?jiǎng)h除,建議采用豎線符號(hào)“|”,因兩個(gè)欄目之間還有無(wú)法刪除的空格。
文章標(biāo)題 | 二級(jí)欄目 | 一級(jí)欄目_網(wǎng)站名稱
超過(guò)三層目錄結(jié)構(gòu)請(qǐng)繼續(xù)往下讀。
修改鏈接符號(hào)"/"的另一種方法
如果你懶得修改源文件,也可以用php對(duì){dede:field name='title'/}進(jìn)行替換:
<title>{dede:field name='title' function='str_replace("|","/",@me) '/}{dede:global.webname/}</title>
面包屑導(dǎo)航設(shè)置
{dede:field name='position'/},列表頁(yè)或內(nèi)容頁(yè),一般顯示如下,很顯然不是我們想要的效果
首頁(yè) > en > channelname > articlename
網(wǎng)上有直接修改position的,但是對(duì)于中英文站都需要用的標(biāo)簽,還不能采用直接修改的方法,只有直接調(diào)用頻道咯。
如果是二層目錄結(jié)構(gòu)的網(wǎng)站就簡(jiǎn)單了,但是四級(jí)以上欄目調(diào)用可就傷腦筋了,特別是英文站放在子目錄里,當(dāng)然為了蜘蛛順利抓取,不建議大家網(wǎng)站結(jié)構(gòu)超過(guò)三層(包括文章層)。
網(wǎng)上有用sql的方法,但是覺(jué)得不靈活,萬(wàn)一別人修改了數(shù)據(jù)庫(kù)呢!這里用到一個(gè)標(biāo)簽:{dede:channel type='parent'}[field:typename/]{/dede:channel},當(dāng)然需要自己動(dòng)手了
打開(kāi)/include/taglib/channel.lib.php,找到
else if($type=='self') { if($reid==0) return ''; $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From `dede_arctype` where reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line "; }
在下面增加
else if($type=='parent') { $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From `dede_arctype` where id='$reid' AND ishidden<>1 order by sortrank asc limit 0, $line "; }
當(dāng)英文站作為二級(jí)欄目時(shí),三級(jí)欄目調(diào)用欄目名和鏈接的完整面包屑如下:
<a href="{dede:type typeid='英文站欄目的id'}[field:typeurl/]{/dede:type}">HOME > {dede:type typeid='英文站二級(jí)欄目id'}<a href="[field:typeurl/]">[field:typename/]</a> > {dede:type}[field:typename/]{/dede:type}</a>
四級(jí)欄目調(diào)用各欄目名和鏈接的完整面包屑代碼如下:
<a href="{dede:type typeid='英文站欄目的id'}[field:typeurl/]{/dede:type}">HOME > {dede:type typeid='英文站二級(jí)欄目id'}<a href="[field:typeurl/]">[field:typename/]</a>{/dede:type}{dede:channel type='parent' }{/dede:channel} > <a href="{dede:type}[field:typeurl/]{/dede:type}">{dede:type}[field:typename/]{/dede:type}</a>