快速业务通道

301rewrite杂谈

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-29
串中新建包含请求串的URL. 在替换串中使用问号,以标明其后继的成分应该被重新注入到QUERY_STRING中. 要删除一个已有的请求串,可以用问号来终结替换字符串.

注意
一个特殊功能: 在用http://thishost[:thisport]作为替换字段的前缀时, mod_rewrite会把它自动剥离出去. 在配合生成主机名的映射函数使用的时候, 这个对隐含的外部重定向URL的精简化操作是有用的是重要的. 下面例子一节中的第一个例子有助于理解这点.
谨记
此功能的存在,以http://thishost为前缀的无条件外部重定向在你自己的服务器上是无效的.要做这样一个自身的重定向,使用R标记 (见下文).
此外,Substitution还可以追加特殊标记


[flags]

作为RewriteRule指令的第三个参数. Flags是一个包含以逗号分隔的下列标记的列表:

''redirect|R [=code]'' (强制重定向 redirect)
以http://thishost[:thisport]/(使新的URL成为一个URI) 为前缀的Substitution可以强制性执行一个外部重定向. 如果code没有指定,则产生一个HTTP响应代码302(临时性移动). 如果需要使用在300-400范围内的其他响应代码,只需在此指定这个数值即可, 另外,还可以使用下列符号名称之一: temp (默认的), permanent, seeother. 用它可以把规范化的URL反馈给客户端,如, 重写``/~''''为 ``/u/'''',或对/u/user加上斜杠,等等.

注意: 在使用这个标记时,确保该替换字段是一个有效的URL! 否则,它会指向一个无效的位置! 并且要记住,此标记本身只是对URL加上 http://thishost[:thisport]/的前缀,重写操作仍然会继续. 通常,你会希望停止重写操作而立即重定向,则还需要使用''L''标记.

''forbidden|F'' (强制URL为被禁止的 forbidden)

Empire CMS,phome.net

强制当前URL为被禁止的,即,立即反馈一个HTTP响应代码403(被禁止的). 使用这个标记,可以链接若干RewriteConds以有条件地阻塞某些URL.

''gone|G'' (强制URL为已废弃的 gone)
强制当前URL为已废弃的,即,立即反馈一个HTTP响应代码410(已废弃的). 使用这个标记,可以标明页面已经被废弃而不存在了.

''proxy|P'' (强制为代理 proxy)
此标记使替换成分被内部地强制为代理请求,并立即(即, 重写规则处理立即中断)把处理移交给代理模块. 你确保此替换串是一个有效的(比如常见的以 http://hostname开头的)能够为Apache代理模块所处理的URI. 使用这个标记,可以把某些远程成分映射到本地服务器名称空间, 从而增强了ProxyPass指令的功能.

注意: 要使用这个功能,代理模块编译在Apache服务器中. 如果你不能确定,可以检查``httpd -l''''的输出中是否有mod_proxy.c. 如果有,则mod_rewrite可以使用这个功能; 如果没有,则启用mod_proxy并重新编译``httpd''''程序.

''last|L'' (一个规则 last)
立即停止重写操作,并不再应用其他重写规则. 它对应于Perl中的last命令或C语言中的break命令. 这个标记可以阻止当前已被重写的URL为其后继的规则所重写. 举例,使用它可以重写根路径的URL(''/'')为实际存在的URL, 比如, ''/e/www/''.

''next|N'' (重新执行 next round)
重新执行重写操作(从第一个规则重新开始). 这时再次进行处理的URL已经不是原始的URL了,而是经一个重写规则处理的URL. 它对应于Perl中的next命令或C语言中的continue命令. 此标记可以重新开始重写操作,即, 立即回到循环的头部.
但是要小心,不要制造死循环!

''chain|C'' (与下一个规则相链接 chained)

Empire CMS,phome.net

此标记使当前规则与下一个(其本身又可以与其后继规则相链接的, 并可以如此反复的)规则相链接. 它产生这样一个效果: 如果一个规则被匹配,通常会继续处理其后继规则, 即,这个标记不起作用;如果规则不能被匹配, 则其后继的链接的规则会被忽略.比如,在执行一个外部重定向时,

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号