Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1736294
  • 博文数量: 438
  • 博客积分: 9799
  • 博客等级: 中将
  • 技术积分: 6092
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-25 17:25
文章分类

全部博文(438)

文章存档

2019年(1)

2013年(8)

2012年(429)

分类: 系统运维

2012-06-08 21:16:08

mod_rewrite提供了一种操作URL的方式,它用于处理复杂的任务。它使用Perl兼容的正则表达式。对于简单的任务,应该使用mod_alias。

RewriteRule由空格分隔的三个参数组成:

1、pattern:应该被规则影响的URL;

2、Substitution:用于替换匹配的部分;

3、[flags]:影响重写请求的选项。


例如:

RewriteRule ^/games /usr/local/games/web

RewriteRule ^/product/view$ [R]

RewriteRule ^/product/(.*)/view$ /var/web/productdb/$1


具体的flag参考:。


RewriteCond可以用来限制要传给后面的请求类型。第一个参数是描述请求的一个特性的变量;第二个参数是匹配第一个参数的正则表达式;第三个可选参数是一列flags来修改匹配如何取值。


例如:

RewriteCond %{REMOTE_ADDR} ^10\.2\.
RewriteRule (.*)

RewriteCond %{QUERY_STRING} hack
RewriteCond %{HTTP_COOKIE} !go
RewriteRule . - [F]


RewriteCond %{HTTP_HOST} (.*)
RewriteRule ^/(.*) /sites/%1/$1


RewriteMap指令提供了调用外部函数的一种方式。具体参考。


Rewrite一般推荐在片段外面配置,也可以在里。在里或.htaccess文件里配置会增加额外的复杂性的开销。

阅读(1115) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~