q968 发表于 2018-11-17 12:12:14

Apache下使用rewrite实现discuz伪静态的配置

  Apache下使用rewrite实现discuz伪静态的配置
1、伪静态简介及作用
  伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息。或者还想运用动态脚本解决一些问题。不能用静态的方式来展示网站内容。但是这就损失了对搜索引擎的友好面。怎么样在两者之间找个中间方法呢,这就产生了伪静态技术。就是展示出来的是以html一类的静态页面形式,但其实是用ASP或PHP之类的动态脚本来处理的。
2、rewrite实现discuz伪静态的配置步骤
(1)配置步骤文字说明
  首先登陆discuz后台管理,进入“管理中心”>“全局”>“优化配置”>“搜索引擎优化(SEO设置)”,再把URL地址想静态化的页面列表地方勾选,然后点击提交。
(2)详细实现步骤如下
  1、进入管理中心

  2、输入用户名的密码,然后提交。

  3、上面输入密码后进入下面的界面,点击全局>SEO设置。

  4、把URL地址想静态化的页面列表地方勾选,然后点击提交。

  5、上面设置完成之后,点击“查看当前的 Rewrite 规则”

  6、上面点击查看当前的rewrite规则后,会出现下面的页面,把对应的用户规则复制进Apache网页服务的配置文件,然后重启服务即可实现动态页面转伪静态的配置。
(3)Apache服务独立主机用户使用rewrite配置伪静态
  修改Apache的主配置文件,在配置文件中添加如下内容
  vim /usr/local/apache2/conf/httpd.conf
  
  RewriteEngine On
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(.*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(.*)/article-(+)-(+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(.*)/forum-(\w+)-(+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(.*)/thread-(+)-(+)-(+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(.*)/group-(+)-(+)\.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-(+)-(+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(.*)/(fid|tid)-(+)\.html$ $1/archiver/index.php?action=$2&value=$3&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(.*)/(+*)-(+)\.html$ $1/plugin.php?id=$2:$3&%1
  
(4)Apache虚拟主机用户使用rewrite配置伪静态
  修改Apache虚拟主机的配置文件,在配置文件中添加如下内容
  vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
  # 将 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-(+)-(+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^forum-(\w+)-(+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^thread-(+)-(+)-(+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^group-(+)-(+)\.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-(+)-(+)\.html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(fid|tid)-(+)\.html$ archiver/index.php?action=$1&value=$2&%1
  RewriteCond %{QUERY_STRING} ^(.*)$
  RewriteRule ^(+*)-(+)\.html$ plugin.php?id=$1:$2&%1

页: [1]
查看完整版本: Apache下使用rewrite实现discuz伪静态的配置