如何为 Discuz! X2 配置伪静态规则[超详细]

如何为 Discuz! X2 配置伪静态规则[超详细],第1张

如何为Discuz!X2配置伪静态规则[超详细]

URL静态化是搜索引擎的一个有利设置。通过URLstatization,可以将原来的动态PHP页面转化为静态HTML页面,提高搜索引擎的抓取。当然这里的静态是一种伪静态,目的只是为了增加搜索引擎的搜索量。下面是如何配置的。

URL静态化是一个有利于搜索引擎的设置,通过URL静态化,达到原来是动态的PHP页面转换为静态化的HTML页面,可以提高搜索引擎抓取,当然,这里的静态化是一种假静态,目的只是提高搜索引擎的搜索量,下面主要介绍配置方法。
分两种情况,一种是独立主机用户,这部分用户拥有对主机的管理权限,因此配置起来比较方便一些。

首先确定您使用的Apache版本,及是否加载了mod_Rewrite模块。
Apache1.x的用户请检查conf/httpd.conf中是否存在如下两段代码:
LoadModuleRewrite_modulelibexec/mod_Rewrite.so
AddModulemod_Rewrite.cApache2.x的用户请检查conf/httpd.conf中是否存在如下一段代码:
LoadModuleRewrite_modulemodules/mod_Rewrite.so
如果存在,那么在配置文件(通常就是conf/httpd.conf)中加入如下代码。此时请务必注意,如果网站使用通过虚拟主机来定义,请务必加到虚拟主机配置,即<VirtualHost>中去,如果加在虚拟主机配置外部将可能无法使用,改好后将Apache重启。

一、ApacheWebServer(独立主机用户)

复制代码代码如下:
<IfModulemod_rewrite.c>
RewriteEngineOn
RewriteCond%{QUERY_STRING}^(.*)$
RewriteRule^(.*)/topic-(.+)\.html$$1/portal.php?mod=topic&topic=$2&%1
RewriteCond%{QUERY_STRING}^(.*)$
RewriteRule^(.*)/forum-(\w+)-([0-9]+)\.html$$1/forum.php?mod=forumdisplay&fid=$2&page=$3&%1
RewriteCond%{QUERY_STRING}^(.*)$
RewriteRule^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$$1/forum.php?mod=viewthread&tid=$2&extra=page\%
3D$4&page=$3&%1
RewriteCond%{QUERY_STRING}^(.*)$
RewriteRule^(.*)/group-([0-9]+)-([0-9]+)\.html$$1/forum.php?mod=group&fid=$2&page=$3&%1
RewriteCond%{QUERY_STRING}^(.*)$
RewriteRule^(.*)/space-(username|uid)-(.+)\.html$$1/home.php?mod=space&$2=$3&%1
RewriteCond%{QUERY_STRING}^(.*)$
RewriteRule^(.*)/(fid|tid)-([0-9]+)\.html$$1/index.php?action=$2&value=$3&%1
</IfModule>


如果没有安装mod_Rewrite,您可以重新编译Apache,并在原有configure的内容中加入--enable-Rewrite=shared,然后再在Apache配置文件中加入上述代码即可。

二、ApacheWebServer(虚拟主机用户)

在开始以下设置之前,请首先咨询您的空间服务商,空间是否支持Rewrite以及是否支持对站点目录中.htaccess的文件解析,否则即便按照下面的方法设置好了,也无法使用。
检查论坛所在目录中是否存在.htaccess文件,如果不存在,请手工建立此文件。Win32系统下,无法直接建立.htaccess文件,您可以从其他系统中拷贝一份,编辑并修改.htaccess文件,添加以下内容:


复制代码代码如下:
#将RewriteEngine模式打开
RewriteEngineOn
#修改以下语句中的/discuz为你的论坛目录地址,如果程序放在根目录中,请将/discuz修改为/
RewriteBase/discuz
#Rewrite系统规则请勿修改
RewriteCond%{QUERY_STRING}^(.*)$
RewriteRule^topic-(.+)\.html$portal.php?mod=topic&topic=$1&%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^archiver/(fid|tid)-([0-9]+)\.html$archiver/index.php?action=$1&value=$2&%1

三、IISWebServer(独立主机用户)

说明:IIS下的Rewrite需要添加组件,通过筛选器的方式实现,下面是组件的下载与配置方法:
IISRewrite下载Rewrite.zip

IISRewrite配置
1、将下载的IISRewrite组件解压,放到任意盘上的任意目录(如C:Rewrite下)
 

2、在IIS管理器里选择网站,右键选择“属性”,如下图所示:

 

在d出的窗口里选择“ISAPI筛选器”

 

上图中点击“添加”,在d出的窗口里“筛选器名称”填写“rewrite”

 

上图界面中点击“浏览”,选择下载解压后的IISRewrite组件目录下的Rewrite.dll文件

 

浏览完毕点击“确定”

 

添加完毕点击“确定

 

重新启动IIS




重新选择该站点=>右键“属性”=>“ISAPI筛选器”,如果看到状态为向上的绿色箭头,就说明Rewrite模块安装成功了。

 

这个时候返回到论坛首页随便打开一个版块或者一个帖子即可看到Discuz!的Rewrite伪静态配置成功!


 
IISWebServer(独立主机用户)

复制代码代码如下:
[ISAPI_Rewrite]
#3600=1hour
CacheClockRate3600
RepeatLimit32
#Protecthttpd.iniandhttpd.parse.errorsfiles
#fromaccessingthroughHTTP
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

四、IIS7WebServer(独立主机用户)

可以将如下的配置规则加入到web.config中

复制代码代码如下:
<rewrite>
<rules>
<rulename="portal_topic">
<matchurl="^(.*/)*topic-(.+).html\?*(.*)$"/>
<actiontype="Rewrite"url="{R:1}/portal.php\?mod=topic&amp;topic={R:2}&amp;{R:3}"/>
</rule>
<rulename="forum_forumdisplay">
<matchurl="^(.*/)*forum-(\w+)-([0-9]+).html\?*(.*)$"/>
<actiontype="Rewrite"url="{R:1}/forum.php\?mod=forumdisplay&amp;fid={R:2}&amp;page={R:3}&amp;{R:4}"/>
</rule>
<rulename="forum_viewthread">
<matchurl="^(.*/)*thread-([0-9]+)-([0-9]+)-([0-9]+).html\?*(.*)$"/>
<actiontype="Rewrite"url="{R:1}/forum.php\?mod=viewthread&amp;tid={R:2}&amp;extra=page%3D{R:4}&amp;page={R:3}&amp;{R:5}"/>
</rule>
<rulename="group_group">
<matchurl="^(.*/)*group-([0-9]+)-([0-9]+).html\?*(.*)$"/>
<actiontype="Rewrite"url="{R:1}/forum.php\?mod=group&amp;fid={R:2}&amp;page={R:3}&amp;{R:4}"/>
</rule>
<rulename="home_space">
<matchurl="^(.*/)*space-(username|uid)-(.+).html\?*(.*)$"/>
<actiontype="Rewrite"url="{R:1}/home.php\?mod=space&amp;{R:2}={R:3}&amp;{R:4}"/>
</rule>
<rulename="forum_archiver">
<matchurl="^(.*/)*(fid|tid)-([0-9]+).html\?*(.*)$"/>
<actiontype="Rewrite"url="{R:1}/index.php\?action={R:2}&amp;value={R:3}&amp;{R:4}"/>
</rule>
</rules>
</rewrite>

五、ZeusWebServer

配置规则如下:

复制代码代码如下:
matchURLinto$with^(.*)/topic-(.+)\.html\?*(.*)$
ifmatchedthen
setURL=$1/portal.php?mod=topic&topic=$2&$3
endif
matchURLinto$with^(.*)/forum-(\w+)-([0-9]+)\.html\?*(.*)$
ifmatchedthen
setURL=$1/forum.php?mod=forumdisplay&fid=$2&page=$3&$4
endif
matchURLinto$with^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html\?*(.*)$
ifmatchedthen
setURL=$1/forum.php?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&$5
endif
matchURLinto$with^(.*)/group-([0-9]+)-([0-9]+)\.html\?*(.*)$
ifmatchedthen
setURL=$1/forum.php?mod=group&fid=$2&page=$3&$4
endif
matchURLinto$with^(.*)/space-(username|uid)-(.+)\.html\?*(.*)$
ifmatchedthen
setURL=$1/home.php?mod=space&$2=$3&$4
endif
matchURLinto$with^(.*)/(fid|tid)-([0-9]+)\.html\?*(.*)$
ifmatchedthen
setURL=$1/index.php?action=$2&value=$3&$4
endif

六、NginxWebServer

配置规则如下:

复制代码代码如下:
rewrite^([^\.]*)/topic-(.+)\.html$$1/portal.php?mod=topic&topic=$2last;
rewrite^([^\.]*)/forum-(\w+)-([0-9]+)\.html$$1/forum.php?mod=forumdisplay&fid=$2&page=$3last;
rewrite^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$$1/forum.php?mod=viewthread&tid=$2&extra=page%
3D$4&page=$3last;
rewrite^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$$1/forum.php?mod=group&fid=$2&page=$3last;
rewrite^([^\.]*)/space-(username|uid)-(.+)\.html$$1/home.php?mod=space&$2=$3last;
rewrite^([^\.]*)/(fid|tid)-([0-9]+)\.html$$1/index.php?action=$2&value=$3last;
if(!-e$request_filename){
return404;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/773907.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存