博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UrlRewrite 伪静态化页面
阅读量:6281 次
发布时间:2019-06-22

本文共 4215 字,大约阅读时间需要 14 分钟。

hot3.png

 

官网

  • http://tuckey.org/urlrewrite/#download

概念

  • UrlRewrite 地址重写,可以将非静态页面地址进行转换,伪装成html后缀的网页。

优点

  • 提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误页面,这比直接返回500或一大堆服务器错误信息要好的多;
  • 美化URL,去除了那些比如*.do之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的URL;
  • 更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息;

转换规则

rule说明

通过正则表达式对请求进行匹配
实际请求地址
^/m/category_([0-9]+)/content_([0-9]+).html$
/main.jsp?categoryid=$1&contentid=$2

outbound-rule说明

页面显示的链接规则表达式
转换为实际显示的地址
^/main.jsp\?categoryid=([0-9]+)&contentid=([0-9]+)$
/m/category_$1/content_$2.html

rule与outbound-rule需要匹配。

注意转义字符:

  • & 转义为 &
  • ? 转义为 /?

示例代码

1.下载项目jar包并加载到项目工程中。

2.将urlrewrite.xml文件加载到WEB-INF目录下,并编写转换规则,编写规则使用正则表达式。

示例代码

^/index.html$
/index.jsp
^/login.html$
/login2.jsp
^/query.html$
/queryResult.jsp
^/m/category_([0-9]+).html$
/main.jsp?categoryid=$1
^/m/category_([0-9]+)/content_([0-9]+).html$
/main.jsp?categoryid=$1&contentid=$2
^/v/category_([0-9]+)/content_([0-9]+).html$
/view.jsp?categoryid=$1&contentid=$2
^/f/category_([0-9]+)/pageNow_([0-9]+).html$
/frame.jsp?categoryid=$1&pageNow=$2
^/p/category_([0-9]+)/pageNow_([0-9]+).html$
/proframe.jsp?categoryid=$1&pageNow=$2
^/c/category_([0-9]+)/pageNow_([0-9]+).html$
/credentails.jsp?categoryid=$1&pageNow=$2
^/p/depart_([0-9]+).html$
/people.jsp?departid=$1
^/index.jsp
/index.html
^/login2.jsp
/login.html
^/queryResult.jsp
/query.html
^/main.jsp\?categoryid=([0-9]+)$
/m/category_$1.html
^/main.jsp\?categoryid=([0-9]+)&contentid=([0-9]+)$
/m/category_$1/content_$2.html
^/view.jsp\?categoryid=([0-9]+)&contentid=([0-9]+)$
/v/category_$1/content_$2.html
^/frame.jsp\?categoryid=([0-9]+)&pageNow=([0-9]+)$
/f/category_$1/pageNow_$2.html
^/proframe.jsp\?categoryid=([0-9]+)&pageNow=([0-9]+)$
/p/category_$1/pageNow_$2.html
^/credentails.jsp\?categoryid=([0-9]+)&pageNow=([0-9]+)$
/c/category_$1/pageNow_$2.html
^/people.jsp\?departid=([0-9]+)$
/p/depart_$1.html

3.在web.xml文件中进行声名。

UrlRewriteFilter
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
UrlRewriteFilter
/*
REQUEST
FORWARD

4.Jsp页面链接声名方式

测试

说明:按照API的指引,java里面编写的链接应该使用转义字符 & 代替 & 才对,但是我使用了&反而不起作用,使用&才行,所以需要大家多测试一下,而且我在本机上部署访问,显示的链接规则是不生效的(即:无法显示 /m/category_1/content_2.html ),但是可以通过这样的规则去正常访问,反而部署在服务器上就正常显示。

163225_DBFG_1262063.png

测试结果

  • 访问http://xxx.com/index.html 实际访问到的是index.jsp页面

参考案例

  • http://pihai.iteye.com/blog/384386
  • http://blog.sina.com.cn/s/blog_7a2356a60100x4fy.html
  • http://blog.sina.com.cn/s/blog_a72be0600101dwxl.html

转载于:https://my.oschina.net/discussjava/blog/886073

你可能感兴趣的文章
基于Internet的软件工程策略
查看>>
数学公式的英语读法
查看>>
留德十年
查看>>
迷人的卡耐基说话术
查看>>
PHP导出table为xls出现乱码解决方法
查看>>
PHP问题 —— 丢失SESSION
查看>>
Java中Object类的equals()和hashCode()方法深入解析
查看>>
数据库
查看>>
Vue------第二天(计算属性、侦听器、绑定Class、绑定Style)
查看>>
dojo.mixin(混合进)、dojo.extend、dojo.declare
查看>>
Python 数据类型
查看>>
iOS--环信集成并修改头像和昵称(需要自己的服务器)
查看>>
PHP版微信权限验证配置,音频文件下载,FFmpeg转码,上传OSS和删除转存服务器本地文件...
查看>>
教程前言 - 回归宣言
查看>>
PHP 7.1是否支持操作符重载?
查看>>
Vue.js 中v-for和v-if一起使用,来判断select中的option为选中项
查看>>
Java中AES加密解密以及签名校验
查看>>
定义内部类 继承 AsyncTask 来实现异步网络请求
查看>>
VC中怎么读取.txt文件
查看>>
如何清理mac系统垃圾
查看>>