Discuz教程网

Discuz X2子目录伪静态的实现方法

[复制链接]
authicon dly 发表于 2012-3-14 18:03:32 | 显示全部楼层 |阅读模式
前几天帮人实现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&amp;topic={R:2}&amp;{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&amp;aid={R:2}&amp;page={R:3}&amp;{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&amp;fid={R:2}&amp;page={R:3}&amp;{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&amp;tid={R:2}&amp;extra=page%3D{R:4}&amp;page={R:3}&amp;{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&amp;fid={R:2}&amp;page={R:3}&amp;{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&amp;{R:2}={R:3}&amp;{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&amp;uid={R:2}&amp;do=blog&amp;id={R:3}&amp;{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}&amp;value={R:3}&amp;{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了,实在不会的朋友直接抄袭吧。



上一篇:Discuz 云平台for Discuz 7.2于23日下午正式发布
下一篇:株洲在线升级至Discuz X2
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2024-5-20 09:56

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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