找回密码
 注册加入

扫一扫,极速登录

QQ登录

只需一步,快速开始

搜索
查看: 5934|回复: 0

在IIS7下实现Discuz! X2子目录伪静态的方法

[复制链接]
发表于 2011-9-20 20:30:24 | 显示全部楼层 |阅读模式

前几天帮人实现Discuz X2的子目录伪静态,以前没做过,就去查了下百度和Discuz论坛,发现好多人都在找这样的伪静态方法,可是都没真正能解决的方法。

Discuz X2现在用的人还是比较多的,我不知道有多少人用的是IIS7的,用Apache的就好办一些,因为.hacess是可以设置子目录的伪静态规则的,但是 在IIS7下,webconfig究竟怎么放才能实现子目录伪静态没有试过,我百度的时候还有人说IIS7是Discuz X2的非主流环境。

下面我就说一下在IIS7下如何实现Discuz X2的子目录伪静态。

首先说明一下,在IIS7下我们自己测试的时候之所以不能实现,大部分是因为我们把伪静态的文件放在子目录了,造成主目录的规则跟子目录相互冲突。

还有一些是在子目录消除了主目录的伪静态继承,但是依旧打不开。

我通过多次测试发现,IIS7下的子目录伪静态,规则要放在主目录,而且规则的写法不能跟主目录的规则冲突。我这里就不说那么多理论了。直接发规则:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <system.webServer>
  4. <rewrite>
  5. <rules>
  6. <rule name="WWW 301Redirect" stopProcessing="true">   // 301跳转规则
  7. <match url=".*" />
  8. <conditions>
  9. <add input="{HTTP_HOST}" pattern="^domain.comg$" />
  10. </conditions>
  11. <action type="Redirect" url="http://www.domain.com/{R:0}" redirectType="Permanent" />
  12. </rule>

  13. <rule name="portal_topic">     // 论坛规则开始
  14. <match url="^(.*)/topic-(.+).html\?*(.*)$" />
  15. <action type="Rewrite" url="{R:1}/portal.php?mod=topic&topic={R:2}&{R:3}" />
  16. </rule>
  17. <rule name="portal_article">
  18. <match url="^(.*)/article-([0-9]+)-([0-9]+).html\?*(.*)$" />
  19. <action type="Rewrite" url="{R:1}/portal.php?mod=view&aid={R:2}&page={R:3}&{R:4}" />
  20. </rule>
  21. <rule name="forum_forumdisplay">
  22. <match url="^(.*)/forum-(\w+)-([0-9]+).html\?*(.*)$" />
  23. <action type="Rewrite" url="{R:1}/forum.php?mod=forumdisplay&fid={R:2}&page={R:3}&{R:4}" />
  24. </rule>
  25. <rule name="forum_viewthread">
  26. <match url="^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html\?*(.*)$" />
  27. <action type="Rewrite" url="{R:1}/forum.php?mod=viewthread&tid={R:2}&extra=page%3D{R:4}&page={R:3}&{R:5}" />
  28. </rule>
  29. <rule name="group_group">
  30. <match url="^(.*)/group-([0-9]+)-([0-9]+).html\?*(.*)$" />
  31. <action type="Rewrite" url="{R:1}/forum.php?mod=group&fid={R:2}&page={R:3}&{R:4}" />
  32. </rule>
  33. <rule name="home_space">
  34. <match url="^(.*)/space-(username|uid)-(.+).html\?*(.*)$" />
  35. <action type="Rewrite" url="{R:1}/home.php?mod=space&{R:2}={R:3}&{R:4}" />
  36. </rule>
  37. <rule name="home_blog">
  38. <match url="^(.*)/blog-([0-9]+)-([0-9]+).html\?*(.*)$" />
  39. <action type="Rewrite" url="{R:1}/home.php?mod=space&uid={R:2}&do=blog&id={R:3}&{R:4}" />
  40. </rule>
  41. <rule name="forum_archiver">
  42. <match url="^(.*)/(fid|tid)-([0-9]+).html\?*(.*)$" />
  43. <action type="Rewrite" url="{R:1}/index.php?action={R:2}&value={R:3}&{R:4}" />
  44. </rule>                                                                 //论坛规则结束
  45. <rule name="wordpress" patternSyntax="Wildcard">            // WP伪静态规则开始
  46. <match url="*" />
  47. <conditions>
  48. <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
  49. <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
  50. <add input="{REQUEST_URI}" pattern="^/bbs1" negate="true" />

  51. </conditions>
  52. <action type="Rewrite" url="index.php" />
  53. </rule>

  54. </rules>
  55. </rewrite>
  56. </system.webServer>
  57. </configuration>
复制代码
基本上这个规则的子目录已经确定是bbs了,实在不会的朋友直接抄袭吧。原文地址:http://www.imshu.com/intenet/301.html感谢 imshu 的投稿


您需要登录后才可以回帖 登录 | 注册加入  

本版积分规则

Archiver|手机版|小黑屋|Discuz!扩展中心 ( 浙ICP备14042422号-1 )|网站地图QQ机器人

GMT+8, 2024-4-29 08:02 , Processed in 0.165774 second(s), 14 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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