網(LieHuo.Net)教程 Discuz! URL 靜態化(以下簡稱 URL 靜態化)功能可以將 Discuz! Archiver 及部分常用頁面(如 主題列表頁面 forumdisplay.php、主題內容頁面 viewthread.php、個人資料頁面 space.php、標簽頁面 tag.php 等)進行 URL 靜態化轉換,形成類似 http://bbs.liehuo.net/forum-12-1.html形式的超級鏈接,從而使論壇內容更容易被搜索引擎挖掘,提高被收錄的機率。
您可以通過 系統設置 => 全局 => 優化設置 => 搜索引擎優化 => URL靜態化 來控制需要靜態化的頁面。
本功能對服務器環境有特殊要求,獨立主機用戶需要對 Web 服務器增加相應的 Rewrite 規則,因此需要服務器權限才可使用。對于虛擬主機用戶,您需要向您的空間服務商進行咨詢:空間是否支持 Rewrite 以及是否支持對站點目錄中 .htaccess 的文件解析,只有滿足這兩條件,URL 靜態化 功能才會生效。
打開 URL 靜態化 后,論壇一些常用鏈接會變成類似 http://bbs.liehuo.net/forum-12-1.html 形式,如果您的服務器環境不支持或者尚未配置好,訪問這些鏈接會出現“網頁無法顯示”的錯誤信息,論壇將無法正常訪問。發生無法訪問的現象時,請您進入管理后臺,關閉 URL 靜態化 功能,論壇即可恢復正常狀態。
Discuz! URL 靜態化 功能受到論壇所在服務器環境的制約,在開啟此功能之前,請根據你的 Web 服務器環境,選擇相應的環境配置方法。錯誤的設置有可能造成服務器無法啟動或者功能無效。
一、Apache Web Server(獨立主機用戶)
首先確定您使用的 Apache 版本,還有是否加載了 mod_Rewrite 模塊。
Apache 1.x 的用戶請檢查 conf/httpd.conf 中是否存在如下兩段代碼:
LoadModule rewrite_module libexec/mod_rewrite.so
AddModule mod_rewrite.cApache 2.x 的用戶請檢查 conf/httpd.conf 中是否存在如下一段代碼:
LoadModule rewrite_module modules/mod_rewrite.so
如果存在,那么在配置文件(通常就是 conf/httpd.conf)中加入如下代碼。此時請務必注意,如果網站使用通過虛擬主機來定義,請務必加到虛擬主機配置,即<VirtualHost> 中去,如果加在虛擬主機配置外部將可能無法使用。改好后將 Apache 重啟。
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)/archiver/((fid|tid)-[w-]+.html)$ $1/archiver/index.php?$2 RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+).html$ $1/forumdisplay.php?fid=$2&page=$3 RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/viewthread.php?tid=$2&extra=page\%3D$4&page=$3 RewriteRule ^(.*)/space-(username|uid)-(.+).html$ $1/space.php?$2=$3 RewriteRule ^(.*)/tag-(.+).html$ $1/tag.php?name=$2</IfModule>
如果沒有安裝 mod_Rewrite,您可以重新編譯 Apache,并在原有 configure 的內容中加入 --enable-Rewrite=shared,然后再在 Apache 配置文件中加入上述代碼即可。
上一篇 尋找優質外部鏈接的方法