找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3531|回复: 0

[知识库] win2008+IIS7.5下Discuz3.2二级目录伪静态配置web.config

[复制链接]
发表于 2018-1-16 13:24:02 | 显示全部楼层 |阅读模式 来自 河南省新乡市
环境是win2008+IIS7.5。dz的版本是Discuz!X3.2。论坛安装在一个网站的二级目录。

要是用Apache的就好办一些,因为.htaccess是可以设置子目录的伪静态规则的,但是 在IIS7下,要使用webconfig配置文件来设置伪静态。百度一下也没找到满意的答案。大部分都是说直接复制后台的伪静态规则然后粘贴到根目录,也有说粘贴到二级目录的。甚至还有说iis7用 http.ini 文件的。

自己折腾的过程其实特别麻烦,特别容易出错。就不多说了。直接贴上 web.config 配置文件代码吧。

系统默认的伪静态规则是这么写的:
  1. <rule name="portal_topic">
  2.         <match url="^(.*/)*topic-(.+).html\?*(.*)[        DISCUZ_CODE_0        ]quot; />
  3.         <action type="Rewrite" url="{R:1}/portal.php\?mod=topic&topic={R:2}&{R:3}" />
  4. </rule>
复制代码
那么二级目录(根目录下/bbs)就修改为
  1. <rule name="portal_topic">
  2.         <match url="^(.*/)*bbs/topic-(.+).html\?*(.*)[        DISCUZ_CODE_1        ]quot; />
  3.         <action type="Rewrite" url="{R:1}/bbs/portal.php\?mod=topic&topic={R:2}&{R:3}" />
  4. </rule>
复制代码
其实就是在topic这个是系统的文件目录前面加上一个你的二级目录文件夹路径bbs/(其他的改成自己相应的文件夹名即可),其他论坛文件目录的伪静态规则修改以此类推。

因为根目录下一句安装了一个WordPress网站。所以根目录下的配置文件会有WordPress的伪静态规则。
  1. <rule name="wordpress" patternSyntax="Wildcard">
  2. <match url="*"/>
  3. <conditions>
  4. <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
  5. <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
  6. </conditions>
  7. <action type="Rewrite" url="index.php"/>
  8. </rule>
复制代码
我使用的时候在WordPress规则下面继续添加rule的时候连根目录的WordPress网站都不能打开,一直报各种错误。暂时还不知道这个是什么原因。

但是调整dz的rule顺序,把规则写在WordPress规则上面的时候。根目录网站正常访问了,也实现了二级目录的dz论坛伪静态功能(前提是已经在dz论坛后台开启了相关的伪静态设置,并且配置好了url路径和所在的应用域名路径)。

我这边使用的时候论坛帖子内容页老是报错说“插件不存在或已关闭”。这个可能原因应该是配置forum_viewthread出现了一些错误。所以自己写的时候请不要出错。

这边给大家提供一个二级目录文件夹为bbs下的论坛伪静态规则配置文件:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <system.webServer>
  4. <rewrite>
  5. <rules>
  6. <rule name="portal_topic">
  7. <match url="^(.*/)*bbs/topic-(.+).html\?*(.*)[        DISCUZ_CODE_3        ]quot; />
  8. <action type="Rewrite" url="{R:1}/bbs/portal.php\?mod=topic&topic={R:2}&{R:3}" />
  9. </rule>
  10. <rule name="portal_article">
  11. <match url="^(.*/)*bbs/article-([0-9]+)-([0-9]+).html\?*(.*)[        DISCUZ_CODE_3        ]quot; />
  12. <action type="Rewrite" url="{R:1}/bbs/portal.php\?mod=view&aid={R:2}&page={R:3}&{R:4}" />
  13. </rule>
  14. <rule name="forum_viewthread">
  15. <match url="^(.*/)*bbs/thread-([0-9]+)-([0-9]+)-([0-9]+).html\?*(.*)[        DISCUZ_CODE_3        ]quot; />
  16. <action type="Rewrite" url="{R:1}/bbs/forum.php\?mod=viewthread&tid={R:2}&extra=page%3D{R:4}&page={R:3}&{R:5}" />
  17. </rule>
  18. <rule name="forum_forumdisplay">
  19. <match url="^(.*/)*bbs/forum-(\w+)-([0-9]+).html\?*(.*)[        DISCUZ_CODE_3        ]quot; />
  20. <action type="Rewrite" url="{R:1}/bbs/forum.php\?mod=forumdisplay&fid={R:2}&page={R:3}&{R:4}" />
  21. </rule>
  22. <rule name="group_group">
  23. <match url="^(.*/)*bbs/group-([0-9]+)-([0-9]+).html\?*(.*)[        DISCUZ_CODE_3        ]quot; />
  24. <action type="Rewrite" url="{R:1}/bbs/forum.php\?mod=group&fid={R:2}&page={R:3}&{R:4}" />
  25. </rule>
  26. <rule name="home_space">
  27. <match url="^(.*/)*bbs/space-(username|uid)-(.+).html\?*(.*)[        DISCUZ_CODE_3        ]quot; />
  28. <action type="Rewrite" url="{R:1}/bbs/home.php\?mod=space&{R:2}={R:3}&{R:4}" />
  29. </rule>
  30. <rule name="home_blog">
  31. <match url="^(.*/)*bbs/blog-([0-9]+)-([0-9]+).html\?*(.*)[        DISCUZ_CODE_3        ]quot; />
  32. <action type="Rewrite" url="{R:1}/bbs/home.php\?mod=space&uid={R:2}&do=blog&id={R:3}&{R:4}" />
  33. </rule>
  34. <rule name="forum_archiver">
  35. <match url="^(.*/)*bbs/(fid|tid)-([0-9]+).html\?*(.*)[        DISCUZ_CODE_3        ]quot; />
  36. <action type="Rewrite" url="{R:1}/bbs/index.php\?action={R:2}&value={R:3}&{R:4}" />
  37. </rule>
  38. <rule name="plugin">
  39. <match url="^(.*/)*bbs/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+).html\?*(.*)[        DISCUZ_CODE_3        ]quot; />
  40. <action type="Rewrite" url="{R:1}/bbs/plugin.php\?id={R:2}:{R:3}&{R:4}" />
  41. </rule>
  42. <rule name="wordpress" patternSyntax="Wildcard">
  43. <match url="*"/>
  44. <conditions>
  45. <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
  46. <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
  47. </conditions>
  48. <action type="Rewrite" url="index.php"/>
  49. </rule></rules>
  50. </rewrite>
  51. </system.webServer>
  52. </configuration>
复制代码
复制粘贴到web.config,再上传到根目录即可。具体文件名替换bbs即可。根目录其他网站程序的规则继续添加在dz伪静态规则下面。记得将配置文件 web.config文件放在根目录 。而且要删除掉二级目录网站下的web.config文件。如果参考以上说明还是解决不了,可以加飘仙qq群,飘仙可 协助操作

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-4-19 13:50 , Processed in 0.086381 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表