快速业务通道

301rewrite杂谈

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-29
对一个目录级规则集,你可能需要删除``.www'''' (此处不应该出现``.www''''的).

''type|T=MIME-type'' (强制MIME类型 type)
强制目标文件的MIME类型为MIME-type. 比如,它可以用于模拟mod_alias中的ScriptAlias指令, 以内部地强制被映射目录中的所有文件的MIME类型为``application/x-httpd-cgi''''.

''nosubreq|NS'' (仅用于不对内部子请求进行处理 no internal sub-request)
在当前请求是一个内部子请求时,此标记强制重写引擎跳过该重写规则. 比如,在mod_include试图搜索可能的目录默认文件(index.xxx)时, Apache会内部地产生子请求.对子请求,它不一定有用的,如果整个规则集都起作用, 它甚至可能会引发错误.,可以用这个标记来排除某些规则.

根据你的需要遵循以下原则: 如果你使用了有CGI脚本的URL前缀,以强制它们由CGI脚本处理, 而对子请求处理的出错率(或者开销)很高,在这种情况下,可以使用这个标记.

''nocase|NC'' (忽略大小写 no case)
它使Pattern忽略大小写,即, 在Pattern与当前URL匹配时,''A-Z'' 和''a-z''没有区别.

''qsappend|QSA'' (追加请求串 query string append)
此标记强制重写引擎在已有的替换串中追加一个请求串,而不是简单的替换. 如果需要通过重写规则在请求串中增加信息,就可以使用这个标记.

''noescape|NE'' (在输出中不对URI作转义 no URI escaping)
此标记阻止mod_rewrite对重写结果应用常规的URI转义规则. 一般情况下,特殊字符(如''%'', ''

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

', '';''等)会被转义为等值的十六进制编码. 此标记可以阻止这样的转义,以允许百分号等符号出现在输出中,如:
Empire CMS,phome.net

RewriteRule /foo/(.*) /bar?arg=P1\=$1 [R,NE]

可以使''/foo/zed''转向到一个安全的请求''/bar?arg=P1=zed''.
''passthrough|PT'' (移交给下一个处理器 pass through)
此标记强制重写引擎将内部结构request_rec中的uri字段设置为 filename字段的值,它只是一个小修改,使之能对来自其他URI到文件名翻译器的 Alias,ScriptAlias, Redirect 等指令的输出进行后续处理.举一个能说明其含义的例子: 如果要通过mod_rewrite的重写引擎重写/abc为/def, 然后通过mod_alias使/def转变为/ghi,可以这样:
RewriteRule ^/abc(.*) /def$1 [PT]
Alias /def /ghi

如果省略了PT标记,虽然mod_rewrite运作正常, 即, 作为一个使用API的URI到文件名翻译器, 它可以重写uri=/abc/...为filename=/def/..., 但是,后续的mod_alias在试图作URI到文件名的翻译时,则会失效.
注意: 如果需要混合使用不同的包含URI到文件名翻译器的模块时, 就使用这个标记.. 混合使用mod_alias和mod_rewrite就是个典型的例子.

For Apache hackers
如果当前Apache API除了URI到文件名hook之外,还有一个文件名到文件名的hook, 就不需要这个标记了! 但是,如果没有这样一个hook,则此标记是唯一的解决方案. Apache Group讨论过这个问题,并在Apache 2.0 版本中会增加这样一个hook.

''skip|S=num'' (跳过后继的规则 skip)
此标记强制重写引擎跳过当前匹配规则后继的num个规则. 它可以实现一个伪if-then-else的构造: 一个规则是then从句,而被跳过的skip=N个规则是else从句. (它和''chain|C''标记是不同的!)

''env|E=VAR:VAL'' (设置环境变量 environment variable)
此标记使环境变量VAR的值为VAL, VAL可以包含可扩展的反向引用的正则表达式$N和%N. 此标记可以多次使用以设置多个变量. 这些变量可以在其后许多情况下被间接引用,但通常是在XSSI (via <!--#echo var="VAR"-->) or CGI (如 $ENV{''VAR''})中, 也可以在后继的RewriteCond指令的pattern中通过%{ENV:VAR}作引用. 使用它可以从URL中剥离并记住一些信息.

Empire CMS,phome.net

''orn

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

上一页1234下一页
分享到: 更多
你可能对下面的文章感兴趣
上一篇: linux下的磁盘管理(1)下一篇: Linux Command - busybox
关于301rewrite杂谈的所有评论

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号