>
前一段时间买了一个godaddy的windows主机,并选择了IIS7.在主机侦探论坛上发现,竟然还支持 url rewrite, 这样就可以设置discuz的伪静态了.同时也在论坛里找到了伪静态代码.
不同于linux主机的是, windows主机安装discuz程序 要实现伪静态不能使用.htaccess文件,而是需要在web.config文件,在文件里写上原本对应于linux主机的.htaccess文件代码.
把下面的内容保存成web.config 并传到bbs目录下 ,并在后台启用静态化.
GoDaddy windows主机discuz伪静态代码如下:
<?xml version=”1.0″ encoding=”UTF-8″?><configuration><system.webServer><rewrite><rules><rule name=”Imported Rule 17″><match url=”^archiver/((fid|tid)-[\w\-]+\.html)$” ignoreCase=”false” /><action type=”Rewrite” url=”archiver/index.php?{R:1}” appendQueryString=”false” /></rule><rule name=”Imported Rule 18″><match url=”^forum-([0-9]+)-([0-9]+)\.html$” ignoreCase=”false” /><action type=”Rewrite” url=”forumdisplay.php?fid={R:1}&page={R:2}” appendQueryString=”false” /></rule><rule name=”Imported Rule 19″><match url=”^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$” ignoreCase=”false” /><action type=”Rewrite” url=”viewthread.php?tid={R:1}&extra=page\%3D{R:3}&page={R:2}” appendQueryString=”false” /></rule><rule name=”Imported Rule 20″><match url=”^space-(username|uid)-(.+)\.html$” ignoreCase=”false” /><action type=”Rewrite” url=”space.php?{R:1}={R:2}” appendQueryString=”false” /></rule><rule name=”Imported Rule 21″><match url=”^tag-(.+)\.html$” ignoreCase=”false” /><action type=”Rewrite” url=”tag.php?name={R:1}” appendQueryString=”false” /></rule></rules></rewrite><httpErrors errorMode=”Detailed” /><asp scriptErrorSentToBrowser=”true” /></system.webServer><system.web><customErrors mode=”Off” /><globalization requestEncoding=”utf-8″ responseEncoding=”utf-8″ fileEncoding=”utf-8″ /></system.web></configuration>
用户使用LunarPages时,安装程序是Discuz6.0论坛,网址是http://bbs.aaa.com/index.php,后台设置了完全启用Archiver,url静态化全部选择,也上传了.htaccess,规则如下:
# 将 RewriteEngine 模式打开
RewriteEngine On
# 修改以下语句中的/discuz为你的论坛目录地址,如果程序放在根目录中,请将/discuz 修改为 /
RewriteBase /bbs
# Rewrite 系统规则请勿修改
RewriteRule ^archiver/((fid|tid)-[0-9]+\.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1
可是发现不行,具体的解决办法是,论坛安装在bbs文件夹里面,.htaccess文件也放在bbs文件夹里,如果把RewriteBase/改成RewriteBase/bbs这个时候http://bbs.aaa.com这个域名就不能访问了,所以静态化写法如下:
# 将 RewriteEngine 模式打开
RewriteEngine On
# Rewrite 系统规则请勿修改
RewriteRule ^archiver/((fid|tid)-[0-9]+\.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1
关键是不能把RewriteBase /改成RewriteBase /bbs