关于UC+SS+DZ+UCH的Rewrite规则设置(给新站长)
原文地址:http://bbs.cnwyw.net/thread-1576-1-1.html
有疑问的朋友可以回帖或者PM询问,我也是菜鸟站长,不过我看到会尽量回答的。
近日在升级Disucz!到6.1.0UC版,并且使用UCenter整合了SupeSite(SS)、UCenterHome(UCH)之后发现Rewrite规则之间存在冲突,导致一些正常的伪静态链接访问时出错或者自动返回首页。后来经过向官方下砂老师询问,总结出解决方法,不敢独享,拿出来与各位站长共同学习。
实际上问题并不复杂,原先我们安装了DZ+SS+XS(X-Space)的时候,Rewrite规则是放在一起的,后来加上UCH之后各应用间的规则互相有冲突所以导致了上述现象。只要将各应用的Rewrite规则分开就可以了。当然了,这个前提是,你的各应用要有自己的独立域名才行,或者设立虚拟目录,总之要能够在IIS里面添加各自的ISAPI筛选器才可以。
举例如下:
我的站点在主机IIS里面是这样分配的。
SS:http://www.cnwyw.net (服务器目录:X:\www\ss\)
DZ:http://bbs.cnwyw.net (服务器目录:X:\www\bbs\)
UCH:http://my.cnwyw.net (服务器目录:X:\www\uch\)
那么各个站点的Rewrite规则只要互相独立就行了。
SS在IIS中的SIAPI筛选器那里,添加Rewrite,服务器目录:X:\www\rewritess\rewrite.dll
DZ的是:X:\www\rewritedz\rewrite.dll
UCH的是:X:\www\rewriteuch\rewrite.dll
之后将各自的Rewrite规则写到相应目录的httpd.ini里面,全部搞定之后重启IIS。
如此一来,各站点(各应用)之间的Rewrite就不会互相冲突了。
下边顺便附上各应用的Rewrite规则的官方版本(IIS独立主机的规则,其余规则请查阅官方相关资料),本站现在用的就是这个,没有出现任何问题。
SS(Supesite6)的:- [ISAPI_Rewrite]
- # 3600 = 1 hour
- CacheClockRate 3600
- RepeatLimit 32
- # SupeSite Rewrite规则
- # 独立主机用户
- # 修改以下语句中的 /supesite 修改为你的SupeSite目录地址,如果程序放在根目录中,请将 /supesite 修改为 /
- RewriteRule ^/([0-9]+)$ /index\.php\?uid/$1 [L]
- RewriteRule ^/([0-9]+)/spacelist(.+)$ /index\.php\?uid/$1/action/spacelist/type$2 [L]
- RewriteRule ^/([0-9]+)/viewspace(.+)$ /index\.php\?uid/$1/action/viewspace/itemid$2 [L]
- RewriteRule ^/([0-9]+)/viewbbs(.+)$ /index\.php\?uid/$1/action/viewbbs/tid$2 [L]
- RewriteRule ^/([0-9]+)/(.*)$ /index\.php\?uid/$1/$2 [L]
- RewriteRule ^/action(.+)$ /index\.php\?action$1 [L]
- RewriteRule ^/category(.+)$ /index\.php\?action/category/catid$1 [L]
- RewriteRule ^/viewnews(.+)$ /index\.php\?action/viewnews/itemid$1 [L]
- RewriteRule ^/viewthread(.+)$ /index\.php\?action/viewthread/tid$1 [L]
- RewriteRule ^/mygroup(.+)$ /index\.php\?action/mygroup/gid$1 [L]
复制代码 DZ(Discuz!6.1.0)的:- [ISAPI_Rewrite]
- # 3600 = 1 hour
- CacheClockRate 3600
- RepeatLimit 32
- # Protect httpd.ini and httpd.parse.errors files
- # from accessing through HTTP
- RewriteRule ^(.*)/archiver/((fid|tid)-[\w\-]+\.html)\?*(.*)$ $1/archiver/index\.php\?$2&$4
- RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html\?*(.*)$ $1/forumdisplay\.php\?fid=$2&page=$3&$4
- RewriteRule
- ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html\?*(.*)$
- $1/viewthread\.php\?tid=$2&extra=page\%3D$4&page=$3&$4
- RewriteRule ^(.*)/space-(username|uid)-(.+)\.html\?*(.*)$ $1/space\.php\?$2=$3&$4
- RewriteRule ^(.*)/tag-(.+)\.html\?*(.*)$ $1/tag\.php\?name=$2&$3
复制代码 UCH(UCenterHome1)的:- [ISAPI_Rewrite]
- # 3600 = 1 hour
- CacheClockRate 3600
- RepeatLimit 32
- # UCHome Rewrite规则
- # 独立主机用户
- # 修改以下语句中的 /uchome 修改为你的uchome目录地址,如果程序放在根目录中,请将 /uchome 修改为 /
- RewriteRule ^/(space|network)-(.+)\.html$ /$1\.php\?rewrite=$2 [L]
- RewriteRule ^/(space|network)\.html$ /$1\.php [L]
- RewriteRule ^/([0-9]+)$ /space\.php\?uid=$1 [L]
复制代码 [ 本帖最后由 pollen 于 2008-4-30 12:03 编辑 ] |