Apache 中RewriteRule 规则参数
发布时间:2010-05-03 14:44:00
Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依赖于各种测试,比如服务器变量、环境变量、HTTP头、时间标记,甚至各种格式的用于匹配URL组成部分的查找数据库。
此模块可以操作URL的所有部分(包括路径信息部分),在服务器级的(httpd.conf)和目录级的(。htaccess)配置都有效,还可以生成最终请求字符串。此重写操作的结果可以是内部子处理,也可以是外部请求的转向,甚至还可以是内部代理处理。
这里着重介绍一下 RewriteRule 的规则以及参数说明。RewriteRule指令是重写引擎的根本。此指令可以多次使用。每个指令定义一个简单的重写规则。这些规则的定义顺序尤为重要——在运行时,规则是按这个顺序逐一生效的。
RewriteRule Pattern Substitution [flags]
Pattern是一个作用于当前URL的perl兼容的正则表达式。“当前URL”是指该规则生效时刻的URL的值。它可能与被请求的URL截然不同,因为其他规则可能在此之前已经发生匹配并对它做了改动。
Substitution是当原始URL与Pattern相匹配时,用来替代(或替换)的字符串。除了纯文本,还可以包含:
对Pattern的反向引用($N)
对最后匹配的RewriteCond的反向引用(%N)
规则条件测试字符串(%{VARNAME})中的服务器变量
映射函数调用(${mapname:key|default})
[flags]标记作为RewriteRule指令的第三个参数,是一个包含以逗号分隔的下列标记的列表:
'chain|C‘(链接下一规则)
此标记使当前规则与下一个规则相链接。它产生这样的效果:如果一个规则被匹配,则继续处理其后继规则,也就是这个标记不起作用;如果该规则不被匹配,则其后继规则将被跳过。比如,在一个目录级规则中执行一个外部重定向时,你可能需要删除“.www”(此处不应该出现“.www”)。
'cookie|CO=NAME:VAL:domain[:lifetime[:path]]’(设置cookie)
在客户端设置一个cookie。cookie的名称是NAME,值是VAL。domain是该cookie的域,比如‘.apache.org’,可选的lifetime是cookie的有效期(分钟),可选的path是cookie的路径。
'env|E=VAR:VAL‘(设置环境变量)
此标记将环境变量VAR的值为VAL,VAL可以包含可扩展的正则表达式反向引用($N和%N)。此标记可以多次使用以设置多个变量。这些变量可以在其后许多情况下被间接引用,通常是在XSSI(<!--#echo var=“VAR”-->)或CGI($ENV{'VAR'})中,也可以在后继的RewriteCond指令的CondPattern参数中通过%{ENV:VAR}引用。使用它可以记住从URL中剥离的信息。
'forbidden|F’(强制禁止URL)
强制禁止当前URL,也就是立即反馈一个HTTP响应码403(被禁止的)。使用这个标记,可以链接若干个RewriteConds来有条件地阻塞某些URL。
'gone|G‘(强制废弃URL)
强制当前URL为已废弃,也就是立即反馈一个HTTP响应码410(已废弃的)。使用这个标记,可以标明页面已经被废弃而不存在了。
'handler|H=Content-handler’(强制指定内容处理器)
强自制定目标文件的内容处理器为Content-handler。例如,用来模拟mod_alias模块的ScriptAlias指令,以强制映射文件夹内的所有文件都由“cgi-script”处理器处理。
'last|L‘(结尾规则)
立即停止重写操作,并不再应用其他重写规则。它对应于Perl中的last命令或C语言中的break命令。这个标记用于阻止当前已被重写的URL被后继规则再次重写。例如,使用它可以重写根路径的URL('/’)为实际存在的URL(比如:‘/e/www/’)。


猜你喜欢
- 为什么要克隆多个 Linux 系统?因为要玩阿。其实也不是了,就是为了折腾嘛,玩个数据库主从啦、缓存集群啦、分布式消息集群啦、分布式各类服务
- 今天本地调试PHP程序,用到了.htaccess,而默认配置里面开启.htaccess,在网上找到了开启.htaccess的可行方法,供朋友
- 一、背景不定时会做一些内训,会经常用到实验坏境;一开始搭建了一个docker容器,但考虑到不是所有学员都会使用docker,因此做了一个虚拟
- 如 果你使用wordpress的话,肯定知道对于wordpress来说主题框架和设计的重要性。一个非常好的wordpress主题可以有效的帮
- 引子近日,服务器迁移后,偷懒未重新编译nginx的,直接./nginx启动,结果遇到如下问题:“error while loading sh
- VMware Workstation 不可恢复错误: (vcpu-1) Exception 0xc0000005 (access violation) has occurred终极解决方案(最新推荐)问题VMware Workstation 不可恢复错误: (vcpu-0) Exception 0xc0000005 (access vio
- 网络“黑客”张子伟入侵计算机服务器,以删除数据为要挟,索要钱财5000元人民币。12月11日,上海市静安区法院对这起“‘黑客’敲诈案”作出一
- 音乐网站的SEO优化相对还是比较简单的。每一首歌的名称都是一个关键词,由歌名还可以再引申出很多长尾关键词。我们这里拿“求佛”举例,求佛一天有
- 受ASP * 页的吸引,笔者决定用Dreamweaver做一个ASP格式的学校主页。然而,当笔者将Web服务器中Htm格式的网页换成新做的A
- 国内著名IT类Blog《awflasher》上最近发布了一篇文章《ByeBye Google Adsense ---全面撤下我的内容广告》。
- 随着Linux企业应用的不断扩展。 有大量的网络服务器都在使用Linux操作系统。Linux服务器的安全性能受到越来越多的关注。 这里根据L
- 11月24日消息,中国互联网络信息中心(CNNIC)日前发布了《2009年中国网络游戏市场研究报告》,调查显示,2009年中国大型网络游戏用
- 组策略是管理员为用户和计算机定义并控制程序、网络资源及操作系统行为的主要工具。通过使用组策略可以设置各种软件、计算机和用户策略。例如,可使用
- 我们都知道关键词分析在算法中起着承上启下的作用。百度在还没调整算法之前所用的关键词分析是最大匹配法:正向匹配法,逆向匹配法和双向匹配法。比如
- 怀疑是有其他的爬虫,明天都在爬我的几个网站。 在网上找找了给access.log和error.log减肥的方法 如下 CustomLog &
- 三、添加用户信箱邮件服务器安装设置完毕后,接下来进行用户的创建,即个人邮箱的建立。1、添加用户在MDaemon主窗口的Accounts菜单中
- 11月26日下午消息,据香港联交所资料显示,腾讯控股(0700.HK)两高管于11月23日进行减持,其中执行董事兼CTO张志东于11月23日
- 一.软件简介 本文主要讲述如何用IIS+Tomcat3.1支持JSP及servlet环境。正常情况下IIS不支持servlet及JSP环境。
- vmware vsphere 6.5是vsphere软件的经典版本,也是一款业界领先的服务器虚拟化平台,作为基础平台,是任何云计算环境的理想
- 1、禁用网络管理器# chkconfig NetworkManager off # service NetworkManager stop2