青青子衿, 悠悠我心, 但为君故, 沉吟至今
« 深圳治安的现实和思考PHP读MYSQL中文乱码的解决方法 »

Windows IIS下论坛静态化分析

  这两天研究Discuz 4.1,并成功地将原来一个Discuz 2.5的论坛升级到了最新版本,个人感觉这个论坛实在不错。

  我的Discuz 4.1是在Apache+Php+Mysql下运行的,并开启了Url Rewrite,之后我发现整个论坛的大部分页面都可以使用html的静态地址方式来访问,感觉真不错,Apache实在太强大了,难怪现在用Apache的站点那么多。

  IIS下能否也实现这种静态化功能呢,我知道Helicon开发了一个叫ISAPI_Rewrite的ISAPI程序,可以在IIS下实现Url Rewrite功能,不过我自己还没有尝试过,过两天按照下面的操作测试一下看看效果如何。另外,下文Discuz提供的ZIP文件里的Rewrite.dll实际上就是Helicon的ISAPI_Rewrite程序,我对Discuz做为软件开发商居然也盗版同行的软件感到遗憾。

  参考文章:Discuz!4.1.0 IIS Rewrite配置方法(转自DISCUZ会员区)

  Discuz! URL静态化功能受到论坛所在服务器环境的制约,在开启此功能之前,请根据你的Web服务器环境,选择相应的环境配置方法,以下提供的iis6下的服务器配置..其它服务器(如apache,zeus)你可以根据原理自行配置。

  1、下载IIS Rewrite模块:http://download.discuz.net/4.1.0/discuz_iis_rewrite.zip

  2、将压缩包解压到任意目录,(如:C:\Rewrite)。然后打开“控制面板”-“管理工具”-“IIS信息服务管理器”-“网站”-“您的站点”-“属性”。在“ISAPI筛选器”项点击“添加”,筛选器名称填入Rewrite,可执行文件为C:\Rewrite\Rewrite.dll;

  3、重新启动IIS就可以生效了。

  通过上述配置后,您就可以在Discuz!4.1.0后台中根据需要开启影响的静态功能了。

  无:不启用URL静态化功能。

  Discuz!Archiver静态化:当论坛启用Archiver功能时,Archiver内的所有链接均采用*.html形式。

  普通页面静态化:对论坛常用页面(如forumdisplay.php、viewthread.php、viewpro.php等)进行URL静态化转换。

  Archiver和普通页面均静态化:对Archiver以及论坛常用页面(如forumdisplay.php、viewthread.php、viewpro.php等)进行URL静态化转换。

  使用注意事项:

  您可以通过系统设置中Discuz!选项来控制URL静态化的打开或关闭及其工作状态,本功能对服务器环境有特殊要求,独立主机用户需要对Web服务器增加相应的Rewrite规则,因此需要服务器权限才可使用;对于虚拟主机用户,您需要向您的空间服务商进行咨询:空间是否支持Rewrite以及是否支持对站点目录中.htaccess的文件解析,只有满足这两条件,URL静态化功能才会生效。打开URL静态化后,论坛一些常用链接会变成类似discuz/forum-1-1.html形式,如果您的服务器环境不支持或者尚未配置好,访问这些链接会出现“网页无法显示”的错误信息,论坛将无法正常访问。发生无法访问的现象时,请您进入管理后台,关闭URL静态化功能,论坛即可恢复正常状态。

  本文提供的压缩包中还有一个httpd.ini文件,该文件是rewrite规则的配置文件。内容如下(无需修改):

[ISAPI_Rewrite]
# 3600 = 1 hour

CacheClockRate 3600

RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
RewriteRule ^(.*)/archiver/([a-z0-9\-]+\.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 ^(.*)/profile-(username|uid)-(.+)\.html$ $1/viewpro\.php\?$2=$3



  除非注明,月光博客文章均为原创,转载请以链接形式标明本文地址

  本文地址:http://www.williamlong.info/archives/474.html
  • 文章排行:
  • 1.Wuvist
  • 免费版的ISAPI_Rewrite只是少了反向代理以及无法为服务器的上的站点单独设定规则而已……
  • 2006/11/24 10:44:05   支持(18)反对(16) 回复
  • 2.sumnny
  • 中国讲座网我就是用ISAPI_Rewrite的免费版做的静态网址,效果很不错
  • 2006/5/7 15:58:31   支持(13)反对(13) 回复
  • 3.williamlong
  • 免费版的ISAPI_Rewrite好像功能和缓存处理上有限制,好像不太适合用于大型站点。
  • 2006/5/9 23:37:31   支持(17)反对(17) 回复
  • 5.qinai
  • 月光,你好。我使用它为ZBLOG做静态化处理,有两个问题想问一下,非常想得到回复。

    1、catalog.asp?page=10这样的页面通过静态化化得到的是page/10/,那么这两个地址是否会同时被搜索引擎收录?因为两个页面是重复的,是不是就会不利于搜索引擎的收录和索引了?

    2、ZBLOG中的页码导航链接的都是catalog.asp?page=10动态页面,又如何指向page/10/呢?

    谢谢,期待回复。
  • 2007/12/15 16:46:11   支持(14)反对(16) 回复
  • 6.Looki
  • 下文Discuz提供的ZIP文件里的Rewrite.dll实际上就是Helicon的ISAPI_Rewrite程序,我对Discuz做为软件开发商居然也盗版同行的软件感到遗憾。


    ISAPI_Rewrite是分免费版和收费版两种
    我在IIS下使用PHPwind就是用的免费版呢
  • 2006/5/5 1:14:39   支持(17)反对(21) 回复
  • 7.supersonic
  • 某日闲逛,偶遇该博客,发现这里有很多有用的东西。。。。
    所以收藏!
    谢谢你的资源!
  • 2006/4/18 11:16:35   支持(19)反对(26) 回复

发表评论:

 请勿发送垃圾信息、广告、推广信息或链接,这样的信息将会被直接删除。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 关注新浪微博:关注新浪微博
  • 关注腾讯微博:关注腾讯微博
  • 关注认证空间:关注QQ空间
  • 通过电子邮件订阅
  • 通过QQ邮件订阅

站内搜索

热文排行


月度排行

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享. 转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议.
This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.