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