apache的rewrite规则

来源:互联网 发布:9wifi九维网络登录 编辑:程序博客网 时间:2024/05/21 11:11

1)R[=code](force redirect) 强制外部重定向 强制在替代字符串加上

2) F(force URL to be forbidden)禁用URL
3) G(force URL to be gone) 强制URL为GONE,返回410HTTP状态码。 
4) P(force proxy) 强制使用代理转发。
5) L(last rule) 表明当前规则是最后一条规则,停止分析以后规则的重写。 
6) N(next round) 重新从第一条规则开始运行重写过程。
7) C(chained with next rule) 与下一条规则关联 如果规则匹配则正常处理,该
标志无效,如果不匹配,那么下面所有关联的规则都跳过。
8) T=MIME-type(force MIME type) 强制MIME类型 
9) NS (used only if no internal sub-request) 只用于不是内部子请求
10) NC(no case) 不区分大小写
11) QSA(query string append) 追加请求字符串 
12) NE(no URI escaping of output) 不在输出转义特殊字符例如
RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE] 
将能正确的将/foo/zoo转换成/bar?arg=P1=zed 

13) PT(pass through to next handler) 传递给下一个处理例如: 
RewriteRule ^/abc(.*) /def$1 [PT] # 将会交给/def规则处理 
Alias /def /ghi
14) S=num(skip next rule(s)) 跳过num条规则 
15) E=VAR:VAL(set environment variable) 设置环境变量 

CondPattern是一个条件模板,也就是说,是一个扩展正则式(extended regular expression),用与跟TestString进行匹配。作为一个标准的扩展正则式,CondPattern有以下补充:

可以在模板串前增加一个!前缀,以用表示不匹配模板。但并不是所有的test都可以加!前缀。

CondPattern中可以使用以下特殊变量:

' 将condPattern当作一个普通字符串,将它和TestString进行比较,当TestString 的字符小于CondPattern为真.

'>CondPattern' (大于)

将condPattern当作一个普通字符串,将它和TestString进行比较,当TestString 的字符大于CondPattern为真.

'=CondPattern' (等于)

将condPattern当作一个普通字符串,将它和TestString进行比较,当TestString 与CondPattern完全相同时为真.如果CondPattern只是 "" (两个引号紧挨在一起) 此时需TestString 为空字符串方为真.

'-d' (是否为目录)

将testString当作一个目录名,检查它是否存在以及是否是一个目录.

'-f' (是否是regular file)

将testString当作一个文件名,检查它是否存在以及是否是一个regular文件.

'-s' (是否为长度不为0的regular文件)

将testString当作一个文件名,检查它是否存在以及是否是一个长度大于0的regular文件

'-l' (是否为symbolic link)

将testString当作一个文件名,检查它是否存在以及是否是一个 symbolic link.

'-F' (通过subrequest来检查某文件是否可访问)

检查TestString是否是一个合法的文件,而且通过服务器范围内的当前设置的访问控制进行访问。这个检查是通过一个内部subrequest完成的, 因此需要小心使用这个功能以降低服务器的性能。

'-U' (通过subrequest来检查某个URL是否存在)

检查TestString是否是一个合法的URL,而且通过服务器范围内的当前设置的访问控制进行访问。这个检查是通过一个内部subrequest完成的, 因此需要小心使用这个功能以降低服务器的性能。


    •  

0 0