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)
首先,要开启rewrite功能:
LoadModule rewrite_module modules/mod_rewrite.so
重启apache,使配置生效。
下面介绍rewrite的使用:
<VirtualHost *:80>
RewriteEngine on
修改如下代码:
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:
复制代码代码示例:
<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:
复制代码代码示例:
< 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
注意: |