原文链接:http://www.javaarch.net/jiagoushi/871.htm
apache url rewrite 的RewriteRule参数详解 我们经常会在apache那边对一些url进行一些重写操作,那么就会涉及到很多的重写策略的选择,比如重定向的方式,参数的处理,规则匹配的顺序等。 比如我们某个应用会有下面的url rewrite规则:下面是对于域名imall.test.com访问的时候需要重定向到http://page.test.com/channel/imall/index.html这个url上, <VirtualHost *> ServerName imall.test.com#if("${industry_port}"!="80"):${industry_port}#end RewriteEngine on RewriteCond %{HTTP_HOST} =imall.test.com [NC] RewriteRule ^/$ http://page.test.com/channel/imall/index.html [L,R] </VirtualHost> 之前是想上面这么写的,但是发现浏览器的url变了,也就是R其实是外部重定向,那么我希望浏览器的url不改变,那么就需要内部重定向或者反向代理的设计。此时只能参考官方文档了:http://httpd.apache.org/docs/2.2/rewrite/flags.html 这里列出很多的参数:在每条规则后面可以加上多个参数,每个参数用逗号分隔 RewriteRule pattern target [Flag1,Flag2,Flag3] B (escape backreferences):非字母字符会被编码, 比如有个url为search.php?term=x & y/z,那么此时不设置B参数时会被编码成search.php?term=x%20&y%2Fz=,也是不对的,那么设置B参数之后会被编码成/search.php?term=x%20%26%20y%2Fz,这样对于url rewrite的规则才能被正确解析转发。 C|chain 如果匹配,会继续匹配下一条规则,如果不匹配则跳过后面所有规则; CO|cookie 可以给当前url设置cookie,规则如:[CO=NAME:VALUE:DOMAIN:lifetime:path:secure:httponly] 示例: RewriteEngine On RewriteRule ^/index\.html - [CO=frontdoor:yes:.example.com:1440:/] DPI|discardpathinfo 丢弃PATH_INFO 信息 E|env 设置环境变量 [E=VAR:VAL] [E=!VAR] 示例: RewriteRule \.(png|gif|jpg) - [E=image:1] CustomLog logs/access_log combined env=!image F|forbidden 直接返回403状态码 RewriteRule \.exe - [F] G|gone 返回410 状态码,表示资源不再可用 RewriteRule oldproduct - [G,NC] H|handler 指定请求被某个handler处理,下面这个url表示被php处理引擎处理 RewriteRule !\. - [H=application/x-httpd-php] L|last 匹配了就不再匹配后面的规则 RewriteBase / RewriteCond %{REQUEST_URI} !=/index.php RewriteRule ^(.*) /index.php?req=$1 [L,PT] N|next 重新从第一条规则开始匹配 RewriteRule (.*)A(.*) $1B$2 [N] NC|nocase 大小写不敏感 RewriteRule (.*\.(jpg|gif|png))$ http://images.example.com$1 [P,NC] NE|noescape 不转码特殊字符,默认是会把&,?等特殊字符转成16进制编码, RewriteRule ^/anchor/(.+) /bigpage.html#$1 [NE,R] NS|nosubreq 规则不作用于子请求上, SSI (Server Side Include) P|proxy 做为反向代理转发请求,这样浏览器url就不会改变 RewriteRule /(.*)\.(jpg|gif|png) http://images.example.com/$1.$2 [P] PT|passthrough url作为一个文件路径处理 Alias /icons /usr/local/apache/icons RewriteRule /pics/(.+)\.jpg /icons/$1.gif [PT] QSA|qsappend 带上query参数 RewriteRule /pages/(.+) /page.php?page=$1 [QSA] R|redirect 重定向 默认302 重定向 S|skip 跳过不想执行的规则匹配 # Is the request for a non-existent file? RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # If so, skip these two RewriteRules RewriteRule .? - [S=2] RewriteRule (.*\.gif) images.php?$1 RewriteRule (.*\.html) docs.php?$1 T|type 指定MIME type 类型 # Serve .pl files as plain text RewriteRule \.pl$ - [T=text/plain] # Files with 'IMG' in the name are jpg images. RewriteRule IMG - [T=image/jpg]
相关推荐
该文档简单描述了Apache URL Rewrite功能配置过程,适用于所有开发服务部署人员。。
本篇文章详细介绍了Apache之Rewrite和RewriteRule规则以及http强转https的配置总结,可作为平时运维手册.特此分享,希望能帮助到有用到的朋友!
url rewrite 时,中文参数解决方法:用到的解码函数
apache_rewrite语法的详细解析,实现php的URL重写。
什么是UrlRewrite UrlRewrite 是 将动态页面转换为静态页面的一种技术 例如 您网站页面是 http: www yourdomain com news docread aspx id 123 为什么使用UrlRewrite: 1 处理这样的情形:你要更改你的web应用...
urlrewrite 只支持单个配置文件,默认的配置文件为:/WEB-INF/urlrewrite.xml 现在对urlrewrite-3.2的源码进行了修改,使它能够支持多文件和通配符的形式加载自定义配置文件,即可以进行如下的配置: <param-name>...
urlrewrite重写地址,Urlrewrite 2.5.2 现在有2.6版本的,自己去网上找吧
在网上找了很多都不合心意,就知道改了下源码,只改了org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.class 文件,如果担心安全的朋友,可以下载 4.0.3的jar 替换UrlRewriteFilter.class即可。 confPath 默认 ...
URL Rewrite是微软针对IIS推出的一种对URL进行重写的扩展模块,目前支持用于IIS7及以上版本。该模块使IIS管理员能够创建强大的自定义规则,语法支持正则规则以及通配符规则过滤。它能够根据HTTP头和IIS服务器变量...
打造UrlRewrite源码 UrlRewrite一般都是在web.config里配置访问规则在路由到实际页面,所以先实现自定义节点信息读取,这里我定义了俩个类 webconfig定义了组,不需要的话可以把UrlRewriteConfigGroup类去掉并修改...
urlrewrite 完整实例, URLREWRITE 实例 。支持多个参数传递。
UrlReWrite(Url重写或伪静态)UrlReWrite(Url重写或伪静态)
IIS URL Rewrite模块(URL 重写)
urlrewrite Jar包 urlrewrite-3.1.0.jar
URL重写技术在今天已不是什么新鲜的话题了,在Apache服务器提供了名为mod_rewrite的URL重写模块,而在IIS服务器上,也有很多商业的ISAPI 筛选器模块可供使用。然而这对于我们,没有很多的资金或使用的共享服务器,...
主要介绍了UrlRewrite 重写url详解及实例的相关资料,重写能美化,提高安全,有利于搜索引擎的收入等,需要的朋友可以参考下
URLRewrite URL重写组件 里边有相关配置说明 包括了web.Config 外附一个Css
UrlRewrite.rarUrlRewrite.rar
URLRewrite使用时候一些属性的配置说明
Apache的URL重写规则的标志详细说明