本栏目下相关链接


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 已经完全重写为了静态页面地址。