解决IIS7.5 IIS8下的discuzX3.2伪静态问题


 有部分客户,在香港空间上面安装了discuz3.2版本后,并且他们在discuz官方论坛里找了一些网友提供的web.config伪静态代码并且修改了该文件,但是还出现500错误。

discuzX3.2 的web.config 伪静态500错误

我们同事根据提供的代码做了一些修正,现在将代码提供给大家方便大家使用。

亲测这段代码可以在我们的香港虚拟主机的服务器系统为 windows2008 IIS7.5,windows2012 IIS8,里面都能完美的执行。

 

代码如下

    <rewrite>
      <rules>
        <rule name="portal_topic">
          <match url="^(.*/)*topic-(.+).html\?*(.*)$" />
          <action type="Rewrite" url="{R:1}/portal.php\?mod=topic&amp;topic={R:2}&amp;{R:3}" />
        </rule>
        <rule name="portal_article">
          <match url="^(.*/)*article-([0-9]+)-([0-9]+).html\?*(.*)$" />
          <action type="Rewrite" url="{R:1}/portal.php\?mod=view&amp;aid={R:2}&amp;page={R:3}&amp;{R:4}" />
        </rule>
        <rule name="forum_forumdisplay">
          <match url="^(.*/)*forum-(\w+)-([0-9]+).html\?*(.*)$" />
          <action type="Rewrite" url="{R:1}/forum.php\?mod=forumdisplay&amp;fid={R:2}&amp;page={R:3}&amp;{R:4}" />
        </rule>
        <rule name="forum_viewthread">
          <match url="^(.*/)*thread-([0-9]+)-([0-9]+)-([0-9]+).html\?*(.*)$" />
          <action type="Rewrite" url="{R:1}/forum.php\?mod=viewthread&amp;tid={R:2}&amp;extra=page%3D{R:4}&amp;page={R:3}&amp;{R:5}" />
        </rule>
        <rule name="group_group">
          <match url="^(.*/)*group-([0-9]+)-([0-9]+).html\?*(.*)$" />
          <action type="Rewrite" url="{R:1}/forum.php\?mod=group&amp;fid={R:2}&amp;page={R:3}&amp;{R:4}" />
        </rule>
        <rule name="home_space">
          <match url="^(.*/)*space-(username|uid)-(.+).html\?*(.*)$" />
          <action type="Rewrite" url="{R:1}/home.php\?mod=space&amp;{R:2}={R:3}&amp;{R:4}" />
        </rule>
        <rule name="home_blog">
          <match url="^(.*/)*blog-([0-9]+)-([0-9]+).html\?*(.*)$" />
          <action type="Rewrite" url="{R:1}/home.php\?mod=space&amp;uid={R:2}&amp;do=blog&amp;id={R:3}&amp;{R:4}" />
        </rule>
        <rule name="forum_archiver">
          <match url="^(.*/)*(fid|tid)-([0-9]+).html\?*(.*)$" />
          <action type="Rewrite" url="{R:1}/index.php\?action={R:2}&amp;value={R:3}&amp;{R:4}" />
        </rule>
        <rule name="plugin">
          <match url="^(.*/)*([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+).html\?*(.*)$" />
          <action type="Rewrite" url="{R:1}/plugin.php\?id={R:2}:{R:3}&amp;{R:4}" />
        </rule>
      </rules>
    </rewrite>

请将上面的代码放在<system.webServer>之间

另外,为了方便大家使用,我们也将web.config文件打包提供下载,直接上传到web根目录下即可使用。

discuzX3.2 web.config文档下载(用于论坛作为单独域名使用,例如www.abc.com或bbs.abc.com)

discuzX3.2 web.config文档下载(用于论坛作为次级目录使用,例如www.abc.com/bbs/或123.abc.com/bbs)

另外温馨提示:

我们做过观察,discuz3.2建议在Php5.2版本下运作会比较流畅,执行效率较高。

注意:
某些用户一个空间下混用2套以上都做伪静态程序,而且不建子站分开绑域名
这样需要自行将两套伪静态脚本合并写入web.config,出现脚本问题较多,需要一定的正则表达式语法基础
这种特殊需求,我们不提供这方面的帮助,请自行百度研究

免实名域名注册