discuz x2.5 伪静态规则

昨天在对迁移论坛的过程中,按照常规的方法,先关闭了伪静态,然后迁移完之后重新开启, 而discuz每一个版本的伪静态规则都有一定的差别,于是从后台查看了rewrite规则之后,编写上传到了新空间的根目录,但是发现并没有生效,上网查了相关资料后发现有人用官方提供的规则成功了,有的失败了,比如说我。。。

不过最终还是让我找到了一个适合的规则,代码如下:(空间阿帕奇版本是2.22)


# 将 RewriteEngine 模式打开
RewriteEngine On

# 修改以下语句中的 /discuz 为您的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
RewriteBase / discuz

# Rewrite 系统规则请勿修改
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^forum-(\w+)-([0-9]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^group-([0-9]+)-([0-9]+)\.html$ forum.php?mod=group&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^space-(username|uid)-(.+)\.html$ home.php?mod=space&$1=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^blog-([0-9]+)-([0-9]+)\.html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^archiver/(fid|tid)-([0-9]+)\.html$ archiver/index.php?action=$1&value=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ plugin.php?id=$1:$2&%1

使用上述规则之后论坛的帖子等都能成功伪静态,但是发现一个问题就是个人空间,显示的虽然是静态化的url,但是打开却还是跳转到默认的好长的链接,我看不懂rewrite那个代码,不知道是不是跟这个有关。。

提醒各位迁移论坛的一定要先关闭伪静态然后进行迁移,另外首先用官方提供的规则测试下,如果不行再说。。。

发表评论

电子邮件地址不会被公开。 必填项已用*标注