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

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

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

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

本文主题:

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

相关文章
Urlrewrite Java 静态 urlrewrite.xml 配置参数描述
Java web.xml 配置技巧—动态欢迎页地址
Spring 静态注入讲解(MethodInvokingFactoryBean)
BlockingQueue 方法详细描述
Shiro教程(三)Shiro web.xml中Filter配置配置注意事项
Java有序读取配置文件,有序读取ini配置文件
Spring 静态变量注入赋值,静态方法调用,静态语句块
基于Centos7以上的JAVA相关配置(一)
Springboot + Mybatis +Maven 自动生成 Mapper.xml,Entity,Dao。 generator 配置
Freemarker静态化加载模板的三种方式
最新文章
Macbook teamviewer 突破5分钟,苹果电脑重置 Mac 地址,100%解决限制 220
腾讯云代金券 10000 元/ 30000 代金券领取技巧 324
SEO 换友情链接的主意事项,友情链接断链、友情链接套路说明 229
Springboot + Mybatis,数据库多数据源配置项目Demo【源码下载】 1903
Mac mtr 安装并使用,mrt: command not found 299
Java 集成阿里云消息队列,日志消息存储 497
域名备案注意事项,网站域名ICP备案快速通过攻略【干货分享】 472
Springboot 集成Aliyun MQ消息队列,Aliyun 消息队列配置及代码实现 837
SpringBoot 集成Spring-data-redis,redis对象序列化存储 2029
天气API,全国天气 JSON API接口,可以获取十五天的天气预报 604
最热文章
Elasticsearch教程(四) elasticsearch head 插件安装和使用 126781
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 108004
Elasticsearch教程(六) elasticsearch Client创建 78810
Elasticsearch教程(八) elasticsearch delete 删除数据(Java) 74434
Elasticsearch教程(二),IK分词器安装 73217
Elasticsearch教程(一),全程直播(小白级别) 65782
Elasticsearch教程(五) elasticsearch Mapping的创建 61877
Elasticsearch教程(三),IK分词器安装 (极速版) 56361
Elasticsearch教程(七) elasticsearch Insert 插入数据(Java) 53539
Java 解析JSON,JSON-LIB jar包下载和使用。 48973

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

入群需要5元,如果没有QQ钱包,可以先Alipay、微信,赞助然后加群主拉进。

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

支付扫码

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

正在加载... ...