Discuz! x2 論壇的功能已經非常強大了,但是在 seo 優化方面,url 的標準化方面還有一些瑕疵。

這次分享的 discuz! x2 論壇 url 標準化主要包含兩方面:一是徹底實現偽靜態,二是去除同一頁面出現不同 url 可訪問的情況。

先來看一下 discuz! x2 論壇中出現問題的地方:

(1) 主題內容頁的麪包屑導航中,論壇版塊的連接是動態的

麪包屑導航偽靜態

(2) 主題內容頁的兩個返回按鈕地址是動態的

(3) 主題內容頁的複製鏈接是動態 URL

主題內容頁的返回按鈕

(4) 同一主題在列表頁的不同頁數,進入主題的 URL 地址不同。

例如,一篇文章在列表頁第一頁時鏈接地址為: 域名/thread-xxx-1-1.html,當這篇文章到第二頁的時候鏈接地址就變成了: 域名/thread-xxx-1-2.html

針對以上 URL 地址不規範的狀況,我們需要按一下步驟操作即可:

(1) 打開 /source/module/forum/forum_viewthread.php 第 123 行找到以下代碼:

$navigation .= '<em>›</em><a href="'.$t_link.'">'.strip_tags($_G['forum']['name']).'</a>';

替換為:

$navigation .= '<em>›</em>'.'<a href="forum.php?mod=forumdisplay&fid='.$_G%5B'fid'%5D.'">'.$_G['forum']['name'].'</a>'.$forumarchive[$_G['gp_archiveid']]['displayname'];

這樣就把主題內容頁的麪包屑導航中的動態地址變成偽靜態地址了

(2) 在 /source/module/forum/forum_viewthread.php 第 103 行、 108 行找到以下代碼:

$upnavlink = 'forum.php?mod=forumdisplay&fid='.$_G['fid'].($_G['gp_extra'] && !IS_ROBOT ? '&'.$_G['gp_extra']:");

都修改為:

$upnavlink = 'forum.php?mod=forumdisplay&fid='.$_G['fid'].($_G['gp_extra'] &&!IS_ROBOT ? '&'.$_G['gp_extra'] : ");

這樣,主題內容頁的兩個返回按鈕就是偽靜態地址了

(3) 打開 /template/default/forum/viewthread.htm 在大約 200 行左右找到以下代碼:

<a href=」forum.php?mod=viewthread&tid=$_G[tid]$fromuid」 onclick="return copyThreadUrl(this)" title="{lang share_url_copy_comment}">[{lang share_url_copy}]</a>

修改為:

< href="forum.php?mod=viewthread&tid=$_G%5Btid%5D" onclick="return copyThreadUrl(this)" title="{lang share_url_copy_comment}">[{lang share_url_copy}]</a>

這樣,就把主題內容頁的複製鏈接的動態地址變成偽靜態地址了

(4) 在後台設置主題內容的偽靜態規則,就可以把內容頁的地址標準化了

論壇主題內容頁url標準化

(5) 設置完之後,記得在後台更新緩存。