
Discuz X2 搭建論壇非常方便,但是由於 Discuz X2 程式有兩個模組:門戶和論壇。如果設定論壇為預設首頁的話,那麼輸入網址不是直接顯示論壇內容,而是會自動跳轉到/forum.php 。
大家知道這樣做非常不友好,而且預設首頁做跳轉,也不利於權重的積累。
所以我將 Discuz X2 的論壇做了兩個修改:
第一,將 forum.php 設為網站的預設首頁,並設為第一順序。
第二,將網站導航、麵包屑導航等裡面的 forum.php 的連結直接去掉,修改成論壇的預設網址。比如我將指向 http://***.com/bbs/forum.php 的連結直接修改成 http://***.com/bbs/ 。
首先,修改網站的預設首頁為 forum.php,這樣輸入網址就不會自動做跳轉了。
修改網站的預設首頁方法很簡單,我這裡就不再贅述了。如果你用的是 Linux 空間,而且支援.htaccess 的話,那麼可以直接在.htaccess 裡新增這樣一句:
#預設首頁設定
DirectoryIndex forum.php index.html index.php default.html
但是修改之後,有一個問題,那就是 Discuz X2 論壇個人空間有一個短網址,就是類似於 http://***.com/bbs/?2 這樣的網址。所以需要做一個跳轉,將個人空間的短網址跳轉到個人空間的靜態地址 http://***.com/bbs/space-uid-2.html 。
開啟 forum.php,在找到:
require './source/function/function_forum.php';
在下面新增如下程式碼:
if(!empty($_SERVER['QUERY_STRING']) && is_numeric($_SERVER['QUERY_STRING'])) {
$uid = $_SERVER['QUERY_STRING'];
$uurl= "http://***.com/bbs/space-uid-".$uid.".html";
header("HTTP/1.1 301 Moved Permanently");
header("location: $uurl");
exit();
}
將」http://***.com/bbs/space-uid-".$uid.".html」 替換為自己的個人空間地址就可以了。這樣如果輸入類似於 http://***.com/bbs/?2 這樣的網址,就會 301 跳轉到個人空間的靜態地址 http://***.com/bbs/space-uid-2.html 。
其次,將麵包屑導航中的 forum.php 去掉。
Discuz 的麵包屑導航出現在三個地方,帖子頁面、帖子列表頁和發帖頁。它們對應的檔案是不同的。
1. 主題列表頁:找到 source/module/forum 目錄下 forum_forumdisplay.php 檔案,直接在原始檔中搜尋替換,搜尋<a href="forum.php">,修改為論壇的相對地址或者絕對地址,比如我的論壇修改為<a href="/bbs/"> 或者修改為論壇的絕對地址。
2. 帖子頁面:找到 source/module/forum 目錄下 forum_viewthread.php 檔案。直接在原始檔中搜尋替換,搜尋<a href="forum.php">,修改為論壇的相對地址或者絕對地址。
3. 發帖頁面:找到 source/module/forum 目錄下 forum_post.php 檔案,同樣在原始檔中搜尋<a href="forum.php">,將其替換為論壇絕對地址。
這樣 Discuz X2 論壇的預設首頁和麵包屑導航修改完畢,折騰還在繼續……