Discuz如何根据服务器环境配置对应的伪静态

我们常常会访问到用discuz建立的论坛网站,并且基本上所有的论坛网站都设置了伪静态。伪静态的设置教程,高速度 主机小编之前也分享过多次,这里就不重复了。详细教程参考链接:DISCUZ 3.0伪静态设置图文帮助教程。今天高速度 主机小编给大家带来的教程,同样与discuz伪静态的配置有关。比如高速度 主机的php空间,我们的用户在设置discuz伪静态的过程中,都是在网站根目录上传.htaccess文件,里面添加对应php虚拟主机的规则,然后在后台设置好,就可以了。小编也一度以为,只有是discuz,伪静态的设置方法就是这样的。最近高速度 主机小编发现,不同的运行环境,规则也千差万别。今天小编就给大家介绍一下具体有哪一些类型。在设置伪静态之前,我们需要确定自己的运行环境。那么如何确认呢?其实discuz有一个自带检测环境的功能。我们只需要登陆网站后台,首页——管理中心首页——系统信息,就可以看到当前的服务器配置和php版本了,如图所示:Discuz如何根据服务器环境配置对应的伪静态在确认了环境之后,我们就需要根据环境来添加对应的伪静态规则了。那么闲言少叙,直接把所有的环境可能以及对应的规则分享给大家。一、服务器系统及 PHP:WINNT / PHP v5.X.X 服务器软件:Microsoft-IIS/6.0这种环境对应的是IIS Web Server(独立主机用户),对应的规则为:

[ISAPI_Rewrite]# 3600 = 1 hourCacheClockRate 3600RepeatLimit 32# Protect httpd.ini and httpd.parse.errors files# from accessing through HTTPRewriteRule ^(.*)/topic-(.+).html(?(.*))*$ $1/portal.php?mod=topic&topic=$2&$4RewriteRule ^(.*)/article-([0-9]+)-([0-9]+).html(?(.*))*$ $1/portal.php?mod=view&aid=$2&page=$3&$5RewriteRule ^(.*)/forum-(w+)-([0-9]+).html(?(.*))*$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3&$5RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html(?(.*))*$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3&$6RewriteRule ^(.*)/group-([0-9]+)-([0-9]+).html(?(.*))*$ $1/forum.php?mod=group&fid=$2&page=$3&$5RewriteRule ^(.*)/space-(username|uid)-(.+).html(?(.*))*$ $1/home.php?mod=space&$2=$3&$5RewriteRule ^(.*)/blog-([0-9]+)-([0-9]+).html(?(.*))*$ $1/home.php?mod=space&uid=$2&do=blog&id=$3&$5RewriteRule ^(.*)/(fid|tid)-([0-9]+).html(?(.*))*$ $1/index.php?action=$2&value=$3&$5
二、服务器系统及 PHP:WINNT / PHP v5.2.16 服务器软件:Microsoft-IIS/7.X这种环境对应的是IIS7 Web Server(独立主机用户),对应的规则是:
<rewrite><rules><rule name="portal_topic"><match url="^(.*/)*topic-(.+).html?*(.*)$" /><action type="Rewrite" url="{R:1}/portal.php?mod=topic&amp;topic={R:2}&amp;{R:3}" /></rule><rule name="portal_article"><match url="^(.*/)*article-([0-9]+)-([0-9]+).html?*(.*)$" /><action type="Rewrite" url="{R:1}/portal.php?mod=view&amp;aid={R:2}&amp;page={R:3}&amp;{R:4}" /></rule><rule name="forum_forumdisplay"><match url="^(.*/)*forum-(w+)-([0-9]+).html?*(.*)$" /><action type="Rewrite" url="{R:1}/forum.php?mod=forumdisplay&amp;fid={R:2}&amp;page={R:3}&amp;{R:4}" /></rule><rule name="forum_viewthread"><match url="^(.*/)*thread-([0-9]+)-([0-9]+)-([0-9]+).html?*(.*)$" /><action type="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><rule name="group_group"><match url="^(.*/)*group-([0-9]+)-([0-9]+).html?*(.*)$" /><action type="Rewrite" url="{R:1}/forum.php?mod=group&amp;fid={R:2}&amp;page={R:3}&amp;{R:4}" /></rule><rule name="home_space"><match url="^(.*/)*space-(username|uid)-(.+).html?*(.*)$" /><action type="Rewrite" url="{R:1}/home.php?mod=space&amp;{R:2}={R:3}&amp;{R:4}" /></rule><rule name="home_blog"><match url="^(.*/)*blog-([0-9]+)-([0-9]+).html?*(.*)$" /><action type="Rewrite" url="{R:1}/home.php?mod=space&amp;uid={R:2}&amp;do=blog&amp;id={R:3}&amp;{R:4}" /></rule><rule name="forum_archiver"><match url="^(.*/)*(fid|tid)-([0-9]+).html?*(.*)$" /><action type="Rewrite" url="{R:1}/index.php?action={R:2}&amp;value={R:3}&amp;{R:4}" /></rule></rules></rewrite>
三、服务器环境为服务器系统及 PHP : Linux / PHP v5.X.X 服务器软件:Apache这种环境也就是高速度 主机php空间的环境,对应的规则是:
RewriteEngine On# 修改以下语句中的 /discuz 为您的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /RewriteBase /discuz# Rewrite 系统规则请勿修改RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^topic-(.+).html$ portal.php?mod=topic&topic=$1&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^article-([0-9]+)-([0-9]+).html$ portal.php?mod=view&aid=$1&page=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^forum-(w+)-([0-9]+).html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+).html$ forum.php?mod=viewthread&tid=$1&extra=page%3D$3&page=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^group-([0-9]+)-([0-9]+).html$ forum.php?mod=group&fid=$1&page=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^space-(username|uid)-(.+).html$ home.php?mod=space&$1=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^blog-([0-9]+)-([0-9]+).html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^archiver/(fid|tid)-([0-9]+).html$ archiver/index.php?action=$1&value=$2&%1
四、服务器系统及 PHP : Linux / PHP v5.X.X 服务器软件:Nginx这种环境对应的规则为:
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;if (!-e $request_filename) {return 404;}
以上四种,就是常见的四类环境,站长朋友们可以根据自己的环境来配置discuz伪静态。具体做法都是在配置文件中添加这些代码,然后后台开启伪静态功能,即可生效。希望对大家有所帮助。高速度 主机相关文章推荐阅读:DISCUZ如何让顶部导航固定DISCUZ!X3.2支付宝充值乱码BUG解决办法DISCUZ默认域名设置失误引起的链接错误问题

本文地址:https://www.gaosudu.com/discuz/20595.html