本欄目下相關鏈接


Discuz! Archiver 使用說明

Discuz! 4.0.0 開始新增了 Discuz! Archiver(以下簡稱 Archiver)功能。Discuz! Archiver 是一個純文字版的論壇內容瀏覽工具,我們 知道,通常的搜索引擎蜘蛛程序對動態頁面的挖掘是有深度限制的,因而動態頁面被搜索引擎收錄的範圍可能會較小;反之靜態頁面(通常以 .html 或 .htm 結尾)則很容易被搜索引擎全盤收錄。然而,論壇是一種內容經常更新的互動式 Web 應用系統,通過真實的靜態頁面來體現其中 內容是毫無意義和價值的,所以在新版本 Discuz! 中我們提供了 Archiver 工具,它可以將論壇帖子等內容偽裝成靜態頁面的形式(例如 http://www.your.com/discuz/archiver/?fid-1.html 或 http://www.your.com/discuz/archiver/fid-1.html 的形式),從而使論壇的內容更 容易被搜索引擎挖掘,提高被收錄的機率。同時,如果您使用 PDA 上網,Archiver 也比普通論壇頁面更具有可讀性。

使用注意事項

  • 您可以通過 系統設置 中 Discuz! 選項 來控制 Discuz! Archiver 的打開或關閉及其工作狀態
  • 本功能要求您的 Web 服務器必須設置了以 index.php 作為索引文件,否則將不能正常使用(這種情況發生的較少,因為把 index.php 加入 到目錄索引通常是一種慣例)。
  • 打開 Archiver 後,將在默認模板的底部右側顯示一個「Discuz! Archiver」的鏈接,用於被搜索引擎挖掘
  • PDA 用戶可直接通過 http://www.your.com/discuz/archiver/ 訪問 Archiver 頁面
  • Archiver 中顯示的內容,均是以遊客身份有權限訪問到的內容,因此不必擔心秘密資料洩漏的問題

Archiver 工作狀態

    在 Discuz! 選項 中提供了四種 Archiver 的工作狀態,分別是:

    • 關閉
      不啟用 Archiver 功能。

    • 完全啟用
      啟用 Archiver,無論如何用戶或搜索引擎機器人均可訪問或檢索到 Archiver 的內容。

    • 啟用,但當用戶從搜索引擎點擊時自動轉向動態頁面
      部分啟用 Archiver,搜索引擎能夠收錄 Archiver 中的內容,但當用戶通過搜索引擎提供的鏈接訪問 Archiver 時,Discuz! 會自動將用戶 導向到論壇的動態頁面版本,這樣有助於用戶方便的使用論壇各項功能及參與討論。而當用戶從其他非搜索引擎頁面來到 Archiver,或直接輸入 Archiver 訪問時,則仍然可以訪問 Archiver 頁面。

    • 啟用,但當用戶使用瀏覽器訪問時自動轉向動態頁面
      部分啟用 Archiver,搜索引擎能夠收錄 Archiver 中的內容,但當用戶使用瀏覽器訪問 Archiver 時,Discuz! 會自動將用戶導向到論壇的 動態頁面版本。

    其中,「用戶通過搜索引擎提供的鏈接訪問 Archiver」的默認定義為用戶的來路(referer)信息中,包含 google/yahoo/msn/baidu/yisou/sogou/iask/zhongsou/sohu/sina/163 字樣時,則視為通過搜索引擎來訪。如果用戶計算機並未提供來路信息(可能是直接輸入地址訪問,或安裝了某些防火牆軟件將來路信息屏蔽), 或用戶的來路信息中不包含上述關鍵字,則視為非通過搜索引擎來訪;「用戶使用瀏覽器訪問 Archiver」的默認定義為,當用戶 agent 信息中 包含 MSIE/Netscape/Opera/Konqueror/Mozilla 字樣時,則視為用戶使用瀏覽器訪問 Archiver。同時,當用戶的 agent 信息中包含 Bot/Crawl/Spider 字樣時,則視為搜索引擎機器人來訪,當開啟 Archiver 後可直接訪問 Archiver 頁面,以便論壇內容更好的被搜索引擎收錄。

    您可以在 ./archiver/index.php 的頭幾行找到上述各項關鍵字的定義,可按照原有格式修改,如果關鍵字包含 PHP 正則表達式所指定的 特殊字符,請使用反斜線「\」轉義。其中,kw_spiders 為搜索引擎機器人的 agent 關鍵字;kw_browsers 為用戶瀏覽器的 agent 關鍵字; kw_searchengines 為搜索引擎域名的來路關鍵字。


Discuz! Archiver 高級技巧

由於受到服務器的環境的限制,默認情況下 Archiver 的 URL 形式大致為 http://www.your.com/discuz/archiver/?fid-1.html,這種形式 中包含有一個問號(?),雖然被收錄的機率比 .php 的動態頁面高很多,但也存在被搜索引擎認為是動態頁面的可能。如果您使用自己的獨立 服務器,或擁有更改 Web 服務器配置的權限,也可以通過 Request Rewrite 的方式,按照以下的方法將 Archiver 的 URL 替換為類似於 http://www.your.com/discuz/archiver/fid-1.html 這樣純靜態的格式。以下僅提供 Apache 和 Zeus 的配置方法,IIS 或其他 Web 服務器 您可根據原理自行修改。

Apache Web Server

    首先確定您使用的 Apache 版本,及是否加載了 mod_rewrite 模塊。

    Apache 1.x 的用戶請檢查 conf/httpd.conf 中是否存在如下兩段代碼:

    
    	LoadModule rewrite_module     libexec/mod_rewrite.so
    


    
    	AddModule mod_rewrite.c
    

    Apache 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/([a-z0-9\-]+\.html)$ $1/archiver/index.php?$2
    	</IfModule>
    

    如果沒有安裝 mod_rewrite,您可以重新編譯 Apache,並在原有 configure 的內容中加入 --enable-rewrite=shared,然後再在 Apache 配置文件中加入上述代碼即可。

Zeus Web Server

    在虛擬主機配置中找到 Request Rewriting,在 Rewrite Script 中寫入以下內容,然後 Apply changes 並 make it take effect。

    
    	match URL into $ with ^(.*)/archiver/([a-z0-9\-]+\.html)$
    	if matched then
    		set URL = $1/archiver/index.php?$2
    	endif
    

    修改完服務器配置,還有很重要的一步:打開 archiver/index.php 並將頭部的 $rewritestatus 由 0 改為 1。至此 Archiver 的 URL 已經完全重寫為了靜態頁面地址。