apache rewrite重定向的例子

发布时间:2019-08-16编辑:脚本学堂
本文介绍下,在apache中使用rewrite配置重定向的例子,有需要的朋友,参考下吧。

首先,要开启rewrite功能:
修改apache/install/ target=_blank class=infotextkey>apache配置文件httpd.conf,注释掉下面的行:
 

LoadModule rewrite_module modules/mod_rewrite.so

重启apache,使配置生效。

下面介绍rewrite的使用:
方法1:
httpd-vhosts.conf中,
 

<VirtualHost *:80>
DocumentRoot d:/jbxue
ServerName jb200.com
ErrorLog logs/jb200.com-error_log
CustomLog logs/jb200.com-access_log common

RewriteEngine on
RewriteRule ^(.*)/list-([0-9]+)-([0-9]+).html$ $1/list.php?forum_id=$2&page=$3
RewriteRule ^(.*)/detail-([0-9]+)-([0-9]+).html$ $1/detail.php?thread_id=$2&page=$3
< /VirtualHost>

修改如下代码:
 

RewriteRule ^(.*)/list-([0-9]+)-([0-9]+).html$ $1/list.php?forum_id=$2&page=$3

这一行,把
 

http://jb200.com/list.php?forum_id=5&page=1 转换成 http://jb200.com/list-5-1.html
访问地址为http://jb200.com/list-5-1.html,实际地址是 http://jb200.com/list.php?forum_id=5&page=1

方法2:
用.htaccess文件,放在网站根目录,内容如下:
 

复制代码 代码示例:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*)/list-([0-9]+)-([0-9]+).html$ $1/list.php?forum_id=$2&page=$3
RewriteRule ^(.*)/detail-([0-9]+)-([0-9]+).html$ $1/detail.php?thread_id=$2&page=$3
< /IfModule>

例子1:
实现访问 100.htm转到show.php?ID=100,配置代码如下:
 

复制代码 代码示例:
< IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([0-9]*).htm$ show.php?ID=$1
< /IfModule>

RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]*).htm$ show.php?ID=$1

RewriteEngine On
RewriteRule ^([0-9]*).htm$ show.php?ID=$1

注意:
1、如果使用方法2,httpd-vhosts.conf中的虚拟主机配置必需加上:
Options FollowSymLinks
2、([0-9]+)-([0-9]+) ([0-9]*) 这些是正则表达式的语法,不熟悉的朋友,可以参考本站的正则表达式栏目。