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 論壇的預設首頁和麵包屑導航修改完畢,折騰還在繼續……