当前位置: > Linux服务器 > apache >

apache rewrite重定向的例子

时间:2014-08-12 22:50来源:linux.it.net.cn 作者:it

首先,要开启rewrite功能:
修改apache配置文件httpd.conf,注释掉下面的行:
 

LoadModule rewrite_module modules/mod_rewrite.so

重启apache,使配置生效。

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

<VirtualHost *:80>
DocumentRoot d:/itnetcn
ServerName it.net.cn
ErrorLog logs/it.net.cn-error_log
CustomLog logs/it.net.cn-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://it.net.cn/list.php?forum_id=5&page=1 转换成 http://it.net.cn/list-5-1.html
访问地址为http://it.net.cn/list-5-1.html,实际地址是 http://it.net.cn/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]*) 这些是正则表达式的语法,不熟悉的朋友,可以参考本站的正则表达式栏目。

(责任编辑:IT)
------分隔线----------------------------