作者:凡妮04 | 来源:互联网 | 2014-05-27 15:53
Discuz论坛的一个最大的特点就是可以很好的支持伪静态,用来进行SEO的优化工作。而做伪静态大家都知道,需要定义伪静态的规则,而不同的服务器使用不同的伪静态功能插件,规则定义的方法也略有不同,很多朋友还在网上到处搜discuzx3.1的伪静态规则是什么,
Discuz论坛的一个最大的特点就是可以很好的支持伪静态,用来进行SEO的优化工作。
而做伪静态大家都知道,需要定义伪静态的规则,而不同的服务器使用不同的伪静态功能插件,规则定义的方法也略有不同,很多朋友还在网上到处搜discuz
x3.1的伪静态规则是什么,其实这个根本不用找,新版的discuz在后台有专门的页面说明了各个不同服务器下的伪静态定义方式。
使用管理员账号登录discuz论坛管理中心,在
全局->seo设置->url静态化
页面的右上方有一个链接
查看当前的 Rewrite 规则URL 静态化
点击这个链接,就会出现各个浏览器下discuz X3.1版本的伪静态设置规则。
Apache Web Server(独立主机用户)
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)/topic-(.+)\.html$
$1/portal.php?mod=topic&topic=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)/article-([0-9]+)-([0-9]+)\.html$
$1/portal.php?mod=view&aid=$2&page=$3&%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 ^(.*)/blog-([0-9]+)-([0-9]+)\.html$
$1/home.php?mod=space&uid=$2&do=blog&id=$3&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)/(fid|tid)-([0-9]+)\.html$
$1/index.php?action=$2&value=$3&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$
$1/plugin.php?id=$2:$3&%1
Apache Web Server(虚拟主机用户)
# 将 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
IIS Web Server(独立主机用户)
[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
RewriteRule ^(.*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html(\?(.*))*$
$1/plugin\.php\?id=$2:$3&$5
IIS7 Web Server(独立主机用户)
Zeus Web Server
match URL into $ with ^(.*)/topic-(.+)\.html\?*(.*)$
if matched then
set URL = $1/portal.php?mod=topic&topic=$2&$3
endif
match URL into $ with
^(.*)/article-([0-9]+)-([0-9]+)\.html\?*(.*)$
if matched then
set URL = $1/portal.php?mod=view&aid=$2&page=$3&$4
endif
match URL into $ with ^(.*)/forum-(\w+)-([0-9]+)\.html\?*(.*)$
if matched then
set URL =
$1/forum.php?mod=forumdisplay&fid=$2&page=$3&$4
endif
match URL into $ with
^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html\?*(.*)$
if matched then
set URL =
$1/forum.php?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&$5
endif
match URL into $ with
^(.*)/group-([0-9]+)-([0-9]+)\.html\?*(.*)$
if matched then
set URL = $1/forum.php?mod=group&fid=$2&page=$3&$4
endif
match URL into $ with
^(.*)/space-(username|uid)-(.+)\.html\?*(.*)$
if matched then
set URL = $1/home.php?mod=space&$2=$3&$4
endif
match URL into $ with
^(.*)/blog-([0-9]+)-([0-9]+)\.html\?*(.*)$
if matched then
set URL =
$1/home.php?mod=space&uid=$2&do=blog&id=$3&$4
endif
match URL into $ with ^(.*)/(fid|tid)-([0-9]+)\.html\?*(.*)$
if matched then
set URL = $1/index.php?action=$2&value=$3&$4
endif
match URL into $ with
^(.*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html\?*(.*)$
if matched then
set URL = $1/plugin.php?id=$2:$3&$4
endif
Nginx Web Server
rewrite ^([^\.]*)/topic-(.+)\.html$
$1/portal.php?mod=topic&topic=$2 last;
rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$
$1/portal.php?mod=view&aid=$2&page=$3 last;
rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$
$1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$
$1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3
last;
rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$
$1/forum.php?mod=group&fid=$2&page=$3 last;
rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$
$1/home.php?mod=space&$2=$3 last;
rewrite ^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$
$1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$
$1/index.php?action=$2&value=$3 last;
rewrite ^([^\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$
$1/plugin.php?id=$2:$3 last;
if (!-e $request_filename) {
return 404;
}
discuz论坛现在做的越来越人性化了,越来越完善。
这里需要注意的是,如果你使用的是iis服务器,上面的IIS独立主机的规则也适用于IIS的虚拟主机,因为一般都是是使用的isapi_rewrite插件。
只是有一点要注意,就是isapi_rewrite的版本号,isapi_rewrite
2.x版本的就用上面的规则就可以了,如果是isapi_rewrite
3.x的版本,就要用apache下的重写规则,否则,你的discuz论坛还是无法使用伪静态链接访问。