{
    分享网正式开通,我们为大家提供免费资源,欢迎大家踊跃投稿!

Discuz!论坛伪静态的实现方法

Discuz!论坛默认的网站地址都是动态地址,这样对优化不友好,但又因为论坛数据都是即时调用,做静态处理会出现很多问题,所以此时我们就要做伪静态,而Discuz!论坛的伪静态设置已经很成熟了,余斗就来说说如何设置Discuz!论坛伪静态:

一、进入后台,找到“全局”——“SEO设置”,如图,把右边“可用”下方的框全给勾选

二、然后再根据自己网站所在服务器的类型写伪静态规则,就拿主流的IIS与Apache服务器来说,如果是IIS服务器,则复制下面代码到记事本,保存为http.ini然后上传到空间根目录:


[ISAPI_Rewrite]

# 3600 = 1 hour
CacheClockRate 3600

RepeatLimit 32

# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
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
 

如果是Apahce服务器,则复制下面代码到记事本,保存为.htaccess并上传到空间根目录:


# Helicon ISAPI_Rewrite configuration file
# Version 3.1.0.82

# 将 RewriteEngine 模式打开
RewriteEngine On

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

# 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
 

三、到论坛后台更新缓存,会发现所有前台的链接都换成静态形式的了!如果遇到分区版块未实现伪静态,请查看教程《Discuz!论坛分区版块(gid)伪静态处理的方法》。


套路很深,不支持下载!


米微资源分享网 , 版权所有丨本站资源仅限于学习研究,严禁从事商业或者非法活动!丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Discuz!论坛伪静态的实现方法
喜欢 ()分享 (0)