PHP中apache和iis下Rewrite静态化服务器配置方法

iscuz! URL 静态化 功能受到论坛所在服务器环境的制约,在开启此功能之前,请根据你的 Web 服务器环境,选择相应的环境配置方法。错误的设置有可能造成服务器无法启动或者功能无效。
一、Apache Web Server(独立主机用户)
首先确定您使用的 Apache 版本,还有是否加载了 mod_rewrite 模块。
Apache 1.x 的用户请检查 conf/httpd.conf 中是否存在如下两段代码:
   LoadModule rewrite_module     libexec/mod_rewrite.so
   AddModule mod_rewrite.c
Apache 2.x 的用户请检查 conf/httpd.conf 中是否存在如下一段代码:
   LoadModule rewrite_module     modules/mod_rewrite.so
如果存在,那么在配置文件(通常就是 conf/httpd.conf)中加入如下代码。此时请务必注意,如果网站使用通过虚拟主机来定义,请务必加到虚拟主机配置,即 <VirtualHost> 中去,如果加在虚拟主机配置外部将可能无法使用。改好后将 Apache 重启。

 代码如下 复制代码
<IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteRule ^(.*)/archiver/((fid|tid)-[w-]+.html)$ $1/archiver/index.php?$2
      RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+).html$ $1/forumdisplay.php?fid=$2&page=$3
      RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3
      RewriteRule ^(.*)/space-(username|uid)-(.+).html$ $1/space.php?$2=$3
      RewriteRule ^(.*)/tag-(.+).html$ $1/tag.php?name=$2
</IfModule>

如果没有安装 mod_rewrite,您可以重新编译 Apache,并在原有 configure 的内容中加入 –enable-rewrite=shared,然后再在 Apache 配置文件中加入上述代码即可。
二、Apache Web Server(虚拟主机用户)
在开始以下设置之前,请首先咨询您的空间服务商,空间是否支持 Rewrite 以及是否支持对站点目录中 .htaccess 的文件解析,否则即便按照下面的方法设置好了,也无法使用。
检查论坛所在目录中是否存在 .htaccess 文件,如果不存在,请手工建立此文件。Win32 系统下,无法直接建立 .htaccess 文件,您可以从其他系统中拷贝一份,或者在 Discuz.net 技术支持栏目中下载此文件。编辑并修改 .htaccess 文件,添加以下内容
# 将 RewriteEngine 模式打开
RewriteEngine On
# 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
RewriteBase /discuz
# Rewrite 系统规则请勿修改

 代码如下 复制代码
RewriteRule ^archiver/((fid|tid)-[w-]+.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+).html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+).html$ viewthread.php?tid=$1&extra=page%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+).html$ space.php?$1=$2
RewriteRule ^tag-(.+).html$ tag.php?name=$1

添加内容时,请遵照上面的提示,修改论坛所在的路径,然后保存。将 .htaccess 文件上传到论坛所在的目录中。然后进入论坛系统设的搜索引擎优化,根据需要开启 URL 静态化功能。
三、IIS Web Server(独立主机用户)
首先在 IIS 的 Isapi 上添加这个筛选器,筛选器名称为 Rewrite ,可执行文件选择 Rewrite.dll ,重新启动 IIS。附件中 httpd.ini 已经设置好,其中内容如下:

 代码如下 复制代码
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
RewriteRule ^(.*)/archiver/((fid|tid)-[w-]+.html)?*(.*)$ $1/archiver/index.php?$2&$4
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+).html?*(.*)$ $1/forumdisplay.php?fid=$2&page=$3&$4
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html?*(.*)$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3&$4
RewriteRule ^(.*)/space-(username|uid)-(.+).html?*(.*)$ $1/space.php?$2=$3&$4
RewriteRule ^(.*)/tag-(.+).html?*(.*)$ $1/tag.php?name=$2&$3

然后进入论坛系统设置的搜索引擎优化,根据需要开启 URL 静态化功能。
附件下载地址:
 
四、Zeus Web Server
在虚拟主机配置中找到 Request Rewriting,在 Rewrite Script 中写入以下内容,然后 Apply changes 并 make it take effect。
 

 代码如下 复制代码
     match URL into $ with ^(.*)/archiver/((fid|tid)-[w-]+.html)?*(.*)$
      if matched then
      set URL = $1/archiver/index.php?$2&$4
      endif
      match URL into $ with ^(.*)/forum-([0-9]+)-([0-9]+).html?*(.*)$
      if matched then
      set URL = $1/forumdisplay.php?fid=$2&page=$3&$4
      endif
      match URL into $ with ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html?*(.*)$
      if matched then
      set URL = $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3&$4
      endif
      match URL into $ with ^(.*)/space-(username|uid)-(.+?).html?*(.*)$
      if matched then
      set URL = $1/space.php?$2=$3&$4
      endif
      match URL into $ with ^(.*)/tag-(.+?).html?*(.*)$
      if matched then
      set URL = $1/tag.php?name=$2$3
      endif

===========================================================
IIS Web Server(独立主机用户)1、下载IIS Rewrite模块:http://www.isapirewrite.com/download/isapi_rwl_x86_0059.msi    ;
 
2、将压缩包解压到任意目录,(如:C:Rewrite)。然后打开“控制面板”-“管理工具”-“IIS信息服务管理器”-“网站”-“您的站点”-“属性”。在“ISAPI筛选器”项点击 “添加”,筛选器名称填入Rewrite,可执行文件为C:RewriteRewrite.dll ;
3、然后修改httpd.ini 文件,添加相应的过滤规则,例如:

 代码如下 复制代码
RewriteRule ^(.*)/([a-z0-9-_]+)$ $1/Default.aspx?id=$2 [I,O]
http://localhost/Text 就会等同于 http://localhost/Default.aspx?id=Text
RewriteRule ^(.*)/id_([a-z0-9-]+).html$ $1/Default.aspx?id=$2 [I,O]
http://localhost/id_Text.html 就会等同于 http://localhost/Default.aspx?id=Text
^(.*)/html/([0-9]+)/([0-9]+).html$ $1/Default.aspx?id=$2&name=$3
http://localhost/html/001/007.html 就等同于 http://localhost/Default.aspx?id=001&name=007

4、重新启动IIS就可以生效了(这一步很重要,每次修改httpd.ini后都要重启 IIS 以加载配置。)

时间: 2024-08-20 19:03:43

PHP中apache和iis下Rewrite静态化服务器配置方法的相关文章

Windows IIS下论坛静态化分析

这两天研究Discuz 4.1,并成功地将原来一个Discuz 2.5的论坛升级到了最新版本,个人感觉这个论坛实在不错. 我的Discuz 4.1是在Apache+Php+Mysql下运行的,并开启了Url Rewrite,之后我发现整个论坛的大部分页面都可以使用html的静态地址方式来访问,感觉真不错,Apache实在太强大了,难怪现在用Apache的站点那么多. IIS下能否也实现这种静态化功能呢,我知道Helicon开发了一个叫ISAPI_Rewrite的ISAPI程序,可以在IIS下实现

IIS下论坛静态化分析_服务器

这两天研究Discuz 4.1,并成功地将原来一个Discuz 2.5的论坛升级到了最新版本,个人感觉这个论坛实在不错. 我的Discuz 4.1是在Apache+Php+Mysql下运行的,并开启了Url Rewrite,之后我发现整个论坛的大部分页面都可以使用html的静态地址方式来访问,感觉真不错,Apache实在太强大了,难怪现在用Apache的站点那么多. IIS下能否也实现这种静态化功能呢,我知道Helicon开发了一个叫ISAPI_Rewrite的ISAPI程序,可以在IIS下实现

xampp中apache在windows7下无法启动的解决方法_服务器其它

环境windows 7 32位 下载zip版本的xampp,无法启动apache ,现象是短暂显示了running标志之后就停止了,日志显示WARNING:terminating worker thread 0. 查看日志信息 [notice] Apache/2.2.14 (Win32) DAV/2 mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1 configured -- r

HDwiki百科建站讲座第三期 :apache、iis下的rewrite规则

中介交易 SEO诊断 淘宝客 云主机 技术大厅 大家好,"HDwiki百科建站讲座第三期"现在正式开始--,今天,邀请到我们的嘉宾是李光明(论坛ID:wanner),他将就"apache.iis下的rewrite规则"的话题与各位站长朋友进行交流,下面,以热烈的掌声有请wanner 1.伪静态简介 伪静态就是:动态网页通过重写URL的方法实现去掉动态网页的参数,但在实际的网页目录中并没有必要实现存在重写的页面. 伪静态的目的 最主要的就是迎合搜索引擎方便搜索引擎蜘蛛

在IIS下安装PHP扩展的方法(超简单)

很多网上的文章在介绍IIS下安装PHP的时候都会涉及到很多配置的修改,其实大部分都是不必要的,对于需要查找如何安装PHP扩展的人来说,其实最需要的或许只是一个现在就能用的版本,在这个时候引入过多的不必要的配置我认为是低效的. 那么归纳一下其实安装步骤只需要三步: 1.下载PHP的文件包: 2.配置PHP: 3.将PHP扩展引入IIS: 当然,或许还有第4步:测试. 第一步:下载PHP PHP的windows版本是直接提供了一个压缩包,里面包括了运行所需的全部文件,堪称傻瓜式安装,可以从官网上的w

在Excel单元格中给文字加下划线的几种方法

  在Excel单元格中给文字加下划线的几种方法          方法一: 1.首先我们把excel的网格线去掉,这样我们在演示的时候会看的更清楚 执行:页面布局--工作表选项--网格线 2.excel单元格内的文字加下划线方法一:开始--字体--下划线 快捷键:ctrl+u 方法二 1.右键单元格--设置单元格格式 2.在单元格格式设置界面 字体--下划线--单下划线--确定 方法三: 1.插入--插图--形状--线条 2.在单元格内画出下划线

用SQL语句查询数据库中某一字段下相同值的记录方法

今天接到一任务,有一张学生信息表(Excel表),里面有一万多条记录,现在要把这张表导入到数据库中,并设置学生学号为主键,但是现在这张表中的学生学号有重复的记录,我必须先找出这些重复的记录,然后再进行筛选,经过研究问题终于得到解决.      以上问题实际上就是查询数据库表中某一字段值重复的记录,这里省略如何将Excel表导入到数据库步骤,只讨论用SQL查询数据库中某一字段下相同值的记录方法. 现在假设数据库表名为student,里面有字段Sno(学号),ID(身份证),这里提供两种查询的方法:

PHP实现HTML页面静态化的方法_php技巧

随着网站的内容的增多和用户访问量的增多,无可避免的是网站加载会越来越慢,受限于带宽和服务器同一时间的请求次数的限制,我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化.一般情况下会从以下方面来做优化 动态页面静态化 优化数据库 使用负载均衡 使用缓存 使用CDN加速 现在很多网站在建设的时候都要进行静态化的处理,为什么网站要进行静态化处理呢?我们都知道纯静态网站是所有的网页都是独立的一个html页面,当我们访问的时候不需要经过数据的处理直接就能读取到文件,访问速度就可想而知了,而其对于

PHP中获取时间的下一周下个月的方法

 PHP中获取时间的下一周,下个月等通常用于定制服务的时候使用,比如包月会员,包年等等 代码如下: //通常用于定制服务的时候使用,比如包月会员,包年等等    //获取当前时间过一个月的时间,以DATETIME格式显示    date('Y-m-d H:i:s',strtotime('+1 month'))    //获取当前时间过一个月的时间,以时间戳格式显示    strtotime(date('Y-m-d H:i:s',strtotime('+1 month')))    //以下是年,