如今的社区论坛最热门的当属discuz论坛了,有非常多的人喜欢用discuz做论坛,设置好论坛的伪静态的友好程度远远大于动态网页,并且也利于自己论坛的收录,如何设置discuz论坛的伪静态?
教你如何设置DZ论坛的伪静态?
注意:DZ论坛所在的空间一定要安装支持伪静态组件。
伪静态文件分为两种:一种是在linux主机下的,一种是在win主机下的。
站长们可以在后台“首页-管理中心首页-系统信息-服务器系统及PHP”查看论坛是在哪个主机下。
1.在linux下的伪静态
Linux伪静态设置比较简单
# 将 RewriteEngine 模式打开
RewriteEngine On
RewriteCond %{HTTP_HOST} !^bbs0724_com$ [NC]
RewriteRule ^(.*)$ http://www_bbs0724_com/$1 [L,R=301]# 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
RewriteBase /
# Rewrite 系统规则请勿修改
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RwriteRule ^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
把上面的代码复制下载,保存为.htaccess上传到论坛根目录就行了。
2.在win下的伪静态
因为win对伪静态的rewrite规则兼容性比较差,所以针对论坛的伪静态可能有多个版本,分享一个针对win主机下比较通用的规则。
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond Host: ^bbs0724_com$
RewriteRule (.*) http://www_bbs0724_com$1 [I,RP]
RewriteRule ^(.*)/gid-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?gid=$2
RewriteRule ^(.*)/topic-(.+)\.html(\?(.*))*$ $1/portal\.php\?mod=topic&topic=$2&$4
RewriteRule ^(.*)/article-([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/portal\.php\?mod=view&aid=$2&page=$3&$5
RewriteRule ^(.*)/forum-(\w+)-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?mod=forumdisplay&fid=$2&page=$3&$5
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&$6
RewriteRule ^(.*)/group-([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?mod=group&fid=$2&page=$3&$5
RewriteRule ^(.*)/space-(username|uid)-(.+)\.html(\?(.*))*$ $1/home\.php\?mod=space&$2=$3&$5
RewriteRule ^(.*)/blog-([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/home\.php\?mod=space&uid=$2&do=blog&id=$3&$5
RewriteRule ^(.*)/(fid|tid)-([0-9]+)\.html(\?(.*))*$ $1/index\.php\?action=$2&value=$3&$5
RewriteRule ^(.*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html(\?(.*))*$ $1/plugin\.php\?id=$23&$5
以上是DZX3.2的版本,把上面的代码复制下载,保存为httpd.ini上传到论坛根目录就行了。
3.无论是win主机还是linux主机,依据上面的步骤安装rewrite规则以后,接下来要在DZ论坛设置后台“全局-SEO设置”,把需要伪静态的选项勾上,Rewrite 兼容性选否,然后提交保存。