Urlrewrite Java 伪静态 urlrewrite.xml 配置参数描述

soゝso 2016-08-22 17:04:50 7310

Urlrewrite  译意为:URL 地址重写。

Java  Urlrewrite  我用的是3.2版本的,接下来我会一系列的为 Urlrewrite  讲解各种用法。

一、Urlrewrite 的作用

  1. URL 重写,达到效果美观,也可以说安全。
  2. SEO  效果。
  3. 伪静态,为什么说是伪静态,因为它处理后不是真的静态,而是通过 Urlrewrite  迷惑请求方认为是静态的。
  4. 过滤一些规则。

二、介绍 urlrewrite.xml 可以用到的配置

1.DTD。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
       "http://tuckey.org/res/dtds/urlrewrite3.2.dtd">

2.<urlrewrite />配置项介绍。

2.1.default-match-type(可选):

2.1.1.regex,默认.所有未指定match-type属性的rule都使用java正则表达式进行匹配。

2.1.2.wildcard:所有未指定match-type属性的rule都使用通配符匹配引擎匹配

2.2.decode-using(可选):

2.2.1.header, utf8: 默认.使用request.getCharacterEncoding()得到的编码对URL解码,如果是空,使用utf8.

2.2.2.null:不进行解码.设置为: decode-using=”null”

2.2.3.header:仅仅使用request.getCharacterEncoding()解码

2.2.4.[encoding]:仅仅使用一个指定的字符编码比如ISO-8859-1.

2.2.5.header, [encoding]: 对一个URL解码时使用request.getCharacterEncoding(),如果得到的值为空,则使用encoding指定的编码.

2.3.use-query-string(可选):

2.3.1.false:默认.在from进行匹配的时候,查询字符串不会参加

2.3.2.true:查询字符串参与from的匹配

2.4.use-context(可选):

2.4.1.false:默认. from元素匹配时, application的contex路径将不会增加到url中

2.4.2.true: application的contex路径参与from元素的匹配

3.<rule />: 0个或多个

3.1.enabled(可选):

3.1.1.true:默认.允许这个规则

3.1.2.false:废弃这个规则

3.2.match-type(可选):

3.2.1.regex:默认.使用java正则匹配

3.2.2.wildcard:使用通配符表达式引擎

4.<outbound-ruld />: 0个或多个.和普通的rule非常相似,但是这里是在response.encodeURL()方法调用时进行重写的.

4.1.enabled(可选):

4.1.1.true:默认.允许规则

4.1.2.false:废弃规则

4.2.encodefirst(可选):

4.2.1.fasle:默认,在运行了encodeURL()方法之后运用这个重写规则

4.2.2.true:在encodeURL()之前运用这个重写规则

5.<name />: 一个用于记录规则名称的可选元素,可以在<rule />和<outbound-rule />上使用

6.<note />: 用于记录规则描述的一个简单可选元素,可以用在<rule />和<outbound-rule />上.

7.<condition />: 针对规则的选择条件.注意,在规则运用的时候必须满足所有的条件.

7.1.type(可选):

7.1.1.header:默认.如果设置,头名称必须通过<condition />的name属性指定

7.1.2.method:请求方法. GET, POST, HEAD等

7.1.3.port: application运行的端口

7.1.4.time:服务器当前时间(使用Unix时间戳),这个通常被用于确保内容仅在设置的时间存活

7.1.5.year:服务器的当前年

7.1.6.month:服务器的当前月份

7.1.7.dayofmonth:当天是一月的第几天,每月第一天是1

7.1.8.dayofweek:当天是一周的第几天,星期天是7

7.1.9.ampm:上午或下午

7.1.10.hourofday:一天的第多少小时(24小时制)

7.1.11.minute:当前服务器时间的分

7.1.12.second:当前服务器时间的秒

7.1.13.millisecond:当前服务器时间的毫秒

7.1.14.attribute:检查request的属性(getAttribute)值,要检查的属性名称通过的name指定

7.1.15.auth-type:检查request属性的值. request.getAuthType

7.1.16.character-encoding:接收到请求的编码

7.1.17.content-length:请求的长度(对于拒绝响应大请求很有用)

7.1.18.content-type:请求类型

7.1.19.context-path:请求的contex路径

7.1.20.cookie:检查cookie值, cookie的名称通过的name属性指定

7.1.21.parameter:检查请求参数,参数名称通过的name属性指定

7.1.22.path-info:相当于request.getPathInfo()

7.1.23.path-translated:相当于request.getTranslated()

7.1.24.protocol:用于过滤协议

7.1.25.query-string:得到url后面的参数字符串

7.1.26.remote-addr: IP地址过滤

7.1.27.remote-host:远程主机过滤(注意,仅仅在应用服务器配置了查看(远程)主机名时才可用)

7.1.28.remote-user:当前登录用户,如果用户被授权可用

7.1.29.requested-session-id:当前session的id

7.1.30.request-uri:请求URL的从协议名到查询字符串部分

7.1.31.request-url:重构后的URL,返回的URL包含协议,服务器名称,端口,路径,但不包含查询字符串

7.1.32.session-attribute:检查session中的属性(getAttribute),属性名称通过的name属性设置.

7.1.33.session-isnew:检查session是不是新的

7.1.34.server-name:请求发送到的服务器的主机名(从host这个头中得到的不是机器名)

7.1.35.scheme:请求的scheme

7.1.36.user-in-role:注意,这里的值不能是正则表达式

7.2.name:配合一些特殊type使用的,可以是任何值

7.3.next:

7.3.1.and:默认.下一个和这一个条件都必须匹配

7.3.2.or:下一个或这一个条件匹配

7.4.operator:

7.4.1.equal:默认.指定正则和真实值匹配

7.4.2.notequal:真实值和正则不匹配

7.4.3.greater:大于,仅用于数值

7.4.4.less:小于

7.4.5.greaterorequal:大于等于

7.4.6.lessorequal:小于等于

8.通常在中都必须指定一个,值可以是正则表达式(Perl5方式的正则),注意: from指定的url是和contex相关的

8.1.casesensitive:

8.1.1.false:默认.大小写不敏感

8.1.2.true:大小写敏感

9.可以是一个perl5样式的正则替换表达式

9.1.type:

9.1.1.forward:默认.请求匹配这个的所有, 并且URL使用内部跳转到”to”指定的地址(注意,这里forward到的URL必须和UrlRewriteFilter位于同一个容器中)

9.1.2.passthrough:和forward相同

9.1.3.redirect:请求匹配所有和这个, 通知客户端跳转到指定地址

9.1.4.permanent-redirect:相当于做了以下事情

response.setStatus(

HttpServletResponse.SC_MOVED_PERMANENTLY

);
response.setHeader(“Location”, [指定的值]);

9.1.5.temporary-redirect:相当于做了以下事情

response.setStatus(
HttpServletResponse. SC_MOVED_TEMPORARILY

);
response.setHeader(“Location”, [指定的值]);

9.1.6.pre-include

9.1.7.post-include

9.1.8.proxy:请求URL将会以全路径被代理,使用此特性需要引入commons-http和commons-codec包

9.2.last:

9.2.1.false:默认.其余将会处理如果这个匹配

9.2.2.true:如果匹配这个规则将不会处理

9.3.encode:

9.3.1.false: 下是默认值.在rewrite之前,用response.encodeURL([to的值])编码URL

9.3.2.true: 下默认值.不会编码URL

9.4.context:

如果应用服务器配置了允许”穿透context”通信,那么这个属性可以被用于forward(并且仅仅能用于forward)请求到另外一个serlvet context…..也就是跨应用forward

在Tomcat上, server.xml或context.xml中配置crossContext=”true”,例如:允许两个应用”app”和”forum”之间通信,那么可以如下配置:

10.的其他方面

10.1.可以是null,意义为:如果匹配请求不再继续,相当于没有调用chain.doFilter

10.2.使用$N获取中配置的子组, N必须是1至10之间的数

10.3.任何中可以使用的type中的值都可以在中使用,比如/%{parameter:page}

10.4.函数调用: ${函数名:参数1:参数2} 可以在中使用

接下来会系列讲解 Urlrewrite  在实际中运用。

版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/96.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
Java web.xml 配置技巧—动态欢迎页地址
BlockingQueue 方法详细描述
Spring 静态注入讲解(MethodInvokingFactoryBean)
Spring 静态变量注入赋值,静态方法调用,静态语句块
Java有序读取配置文件,有序读取ini配置文件
Freemarker静态化加载模板的三种方式
Springboot + Mybatis +Maven 自动生成 Mapper.xml,Entity,Dao。 generator 配置
基于Centos7以上的JAVA相关配置(一)
Shiro教程(三)Shiro web.xml中Filter配置配置注意事项
Java API接口返回不是JSON的解决方案,SpringMVC返回JSON配置
最新文章
使用七牛云存储实现图片API,自动删除图片方案合集 558
神速ICP备案经验分享,ICP备案居然一天就通过了 1826
百度加强推送URL链接,百度SEO强行推送链接JavaScript代码案例讲解。 2687
SOJSON 拓展服务器被DDos攻击了一晚上,是如何解决的? 2961
湖南地区备案“新增网站需提交组网方案或解释说明”,关于备案做简单叙述 2919
企查查你是个什么企业,骗子的帮凶,诈骗的集中营,通过企查查骚扰企业电话不断,为所欲为的企查查 9093
Java爬取百度云观测对网站的检测数据,获取子域名及域名的安全信息 2389
【2020年】百度搜索词获取,获取百度搜索的关键词【真实有效】 6423
Nodejs环境安装,Nodejs环境安装一篇就够了 1663
iOS版淘宝打开提示“您使用的程序是内测版本,将于2020-03-28到期,到期将无法使用,请尽快下载最新版本” 2434
最热文章
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 425262
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 415315
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 348071
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 302098
免费天气API,天气JSON API,不限次数获取十五天的天气预报 281240
Elasticsearch教程(四) elasticsearch head 插件安装和使用 217531
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 170400
谈谈斐讯路由器劫持,你用斐讯路由器,你需要知道的事情 134519
Elasticsearch教程(一),全程直播(小白级别) 117854
Elasticsearch教程(五) elasticsearch Mapping的创建 97889

骚码加入我们 / 千人QQ群:259217951

入群需要5元为的是没有垃圾广告,如果没有QQ钱包,可以加群主拉进。

二维码生成 来自 >> 二维码生成器

支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...