URLRewrite,地址重写.

article/2025/9/17 4:15:17

我们为什么要使用URLRewrite重写url技术呢,在网上搜了一下,有篇文章说是有主要三个原因

1、满足搜索引擎的要求

2、隐藏技术实现,提高网站的移植性

3、满足美感的要求

  

首页,访问其官网:我下载的是最新的目前还处于Beta版的urlrewritefilter-3.2.0,下载后将其中的urlrewrite-3.2.0.jar扔到需使用此功能项目的lib目录中去

 

创建一个web工程,结构目录文件如下(注意工程中我们需要使用到urlrewrite.jar

 

其次,在web.xml中加入如下配置:

<filter>

<filter-name>UrlRewriteFilter</filter-name>

<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>

<init-param>

<param-name>logLevel</param-name>

<param-value>WARN</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>UrlRewriteFilter</filter-name>

<url-pattern>/*</url-pattern>

<dispatcher>REQUEST</dispatcher>

<dispatcher>FORWARD</dispatcher>

</filter-mapping>

其实,urlrewrite其实就是个过虑器,它将会过虑用户的所有请求,符合规则的便对其进行重定向,具体的配置参数的使用方法见官方文档:

配置好web.xml后将下载的urlrewritefilter-3.2.0中的urlrewrite.xml配置文件放在WEB-INF目录下,这样在使用urlrewritefilter时它便自动到该目录下读取相关的配置了

Url 重写的主要内容就是在web-inf中要编写urlrewrite.xml文件,其实内容很简单。

本例中的xml编写的内容如下

 

 

 

我们先来分析一下rule规则

 

<rule> 

        <from>^/page/(.*)$</from> 

        <to>/page/$1.jsp</to> 

</rule>

 

from代表你在访问网站的时候,浏览器地址栏中显示的URL

to代表将浏览器中显示的URL转换后的地址,也就是你网站中真正访问的URL

 

以之前我们建立的web项目为列 (这里只是简略的做了一下转换,既不显示路径后缀)

我们访问 http://localhost:8080/URLRewrite/page/first

而实际我们访问的是http://localhost:8080/URLRewrite/page/first.jsp

 

我们再来说说<outbound-rule>outbond-rule在网上的说的不多。其实RULRewrite本身的说明已经写的很清楚了。

 

     Theoutbound-rule specifies that when response.encodeURL is called (if you are using JSTL c:url) theurl /rewrite-status will be rewritten to /test/status/.   

     The above rule and thisoutbound-rule means that end users should never see the url /rewrite-status only /test/status/ both inthier location bar and in hyperlinks

 

在使用response.encodeURL或是c:url的时候,路径rewrite-status将被重写成

/test/status/

 

以上的ruleoutbound-rule将使最终用户在他们的地址栏或链接中都不会看到/rewrite-status而只能看到重写后的/test/status/

 

其它主要是用于解决我们在页面中显示链接的问题,如我们在页面上有一个链接

 

页面代码如下

我们对链接使用respone.encodeURL进行编码,用于跳转到第二页。

但是我们注意我们页面浏览器的状态栏。它已经根据我们的规则进行了转换。

但是这里我们一定要注意一个问题

使用<outbound-rule>转换过来的URL,一定要符合

        <rule> 

           <from>^/page/(.*)$</from> 

           <to>/page/$1.jsp</to> 

    </rule>

 

也就是说,我们的encodeURL路径为../second.jsp?para=first

首先根据<outbound-rule>转换为我们在状态栏中看到的地址

http://localhost:8080/URLRewrite/page/second,然后再根据<rule>的根据,将其路径转换为http://localhost:8080/URLRewrite/page/second.jsp来访问我们站点中真正的路径。

 

 

这样我们就可以全部将我们的真实路径重写掉。对外只暴露重写后的地址。


http://chatgpt.dhexx.cn/article/ONDBSGaN.shtml

相关文章

urlrewriter 用法

1、简介 UrlRewriteFilter是一个用于改写URL的Web过滤器&#xff0c;类似于Apache的mod_rewrite。适用于任何Web应用服务器&#xff08;如Resin&#xff0c;Orion&#xff0c;Tomcat等&#xff09;。其典型应用就把动态URL静态化&#xff0c;便于搜索引擎爬虫抓取你的动态网页…

UrlRewrite 的配置和使用总结

UrlRewrite就是我们通常说的地址重写&#xff0c;用户得到的全部都是经过处理后的URL地址。 主要优点 一&#xff1a;提高安全性&#xff0c;可以有效的避免一些参数名、ID等完全暴露在用户面前&#xff0c;如果用户随便乱输的话&#xff0c;不符合规则的话直接会返回个404或错…

IIS 无法安装URL重写模块的解决办法 UrlReWrite (.NET`SQL技术交流 群号206656202)

下载和安装URL Rewrite IIS8默认是没有安装URL重写工具的,必须要自己下载安装。 如果IIS上默认有安装Web平台安装程序,我们可以使用平台自动安装URL Rewrite重写工具,打开IIS(Internet 信息服务管理器),在管理器主页中找到管理项,打开Web平台安装程序,如下图: 在Web平台…

java编程之伪静态(urlrewrite)

&#xff08;Notice&#xff1a;欢迎交流和沟通&#xff0c;Wx:IT_Ezra&#xff0c;QQ 654303408。仅个人观点和个人理解有问题讨论也可联系我。&#xff09; 对于伪静态&#xff0c;解释一下就是假的静态&#xff0c;说的官方点就是“地址重写&#xff0c;用户得到的全部地址…

Web服务器群集——URL地址重写(Rewrite)

URL地址重写&#xff08;Rewrite&#xff09; 一、什么是URL地址重写 &#xff08;Rewrite &#xff09;&#xff1f;二、Rewrite 相关指令三、Rewrite flag四、Rewrite匹配参考示例4.1 Rewrite 案例一4.2 Rewrite 案例二4.3 Rewrite 案例三4.4 Rewrite 案例四4.5 Rewrite 案例…

UKSM KSM在Android上的表现

作为一个系统管理程序&#xff08;hypervisor&#xff09;&#xff0c;Linux 有几个创新&#xff0c;2.6.32 内核中一个有趣的变化是 KSM(Kernel Samepage Merging) 允许这个系统管理程序通过合并内存页面来增加并发虚拟机的数量。Linux UKSM 是国人自主研发的一个 Linux 内核相…

针对低端机KSM的优化

&#xfeff;&#xfeff; 简介&#xff1a; KSM的基本概念和思想可参考如下的分析 http://blog.csdn.net/summer_liuwei/article/details/6013255 http://blog.csdn.net/haitaoliang/article/details/25003395 代码分析 一&#xff0c; 编译设置&#xff0c;初始化 1. kernel-…

Linux KSM共享内存

简介&#xff1a;作为一个系统管理程序&#xff08;hypervisor&#xff09;&#xff0c;Linux 有几个创新&#xff0c;2.6.32 内核中一个有趣的变化是 KSM(Kernel Samepage Merging) 允许这个系统管理程序通过合并内存页面来增加并发虚拟机的数量。本文探索 KSM 背后的理念&am…

Linux KSM

转载&#xff1a;http://www.cnblogs.com/zhangzhang/archive/2012/05/23/2514336.html 简介&#xff1a;作为一个系统管理程序&#xff08;hypervisor&#xff09;&#xff0c;Linux 有几个创新&#xff0c;2.6.32 内核中一个有趣的变化是 KSM(Kernel Samepage Merging) 允许…

KSM应用实践

KSM应用实践 原创 lyonger 网易游戏运维平台 2019-08-17 lyonger 18年加入网易&#xff0c;先后负责过多个游戏产品的运维工作&#xff0c;多年运维生涯。负责小游戏CI/CD、事件处理平台开发、游戏Nomad运维模式探索、gitlab平台维护等工作。主要关注Linux性能优化、DevOps、云…

linux ksm,内存页面共享-KSM

导读 本文适合有基本Linux内存管理概念的新手阅读&#xff0c;且本文旨在从工作流程和设计思想上介绍KSM&#xff0c;在涉及到源代码的地方&#xff0c;进行了部分删减&#xff0c;如果想详细了解KSM&#xff0c;推荐阅读源代码及源代码中的注释。 作者也是初次接触Linux内核源…

Linux内存管理 之 KSM功能介绍

目录 前言1. 概述1.1 使用 madvise 控制 KSM1.1 KSM 守护进程 sysfs 接口 2.KSM技术应用场景3. KSM技术实践3.1 查看KSM运行情况3.2 KSM设置3.3 对vm的设置 前言 KSM(Kernel Samepage Merging) 共享内存的概念在现代操作系统中很常用了&#xff0c;比如&#xff0c;一个程序启…

HTTP 401 错误 - 未授权: (Unauthorized)

http://blog.csdn.net/patronsaint/article/details/5639962 介绍 您的Web服务器认为&#xff0c;客户端&#xff08;例如您的浏览器或我们的 CheckUpDown 机器人&#xff09;发送的 HTTP 数据流是正确的&#xff0c;但进入网址 (URL) 资源 &#xff0c; 需要用户身份验证 &a…

403错误(已解决)

问题描述&#xff1a; 取得到图片的地址&#xff0c;但是显示图片无法加载 浏览器开发者模式报错403 问题解决&#xff1a; 图片的url部署在阿里云的oss存储仓库上&#xff0c;登陆阿里云发现是欠费导致的oss文件存储功能失效 补充&#xff1a; 403 Forbidden错误的原因和解…

Error:Request failed with status code 401

Error:Request failed with status code 401 错误示例&#xff1a; // 获取个人信息 export const getUserInfoAPI () > {return request({url: /v1_0/user/profile,method: GET,Headers: {Authorization: Bearer ${getToken()}}}) }正确做法 // 获取个人信息 export co…

服务器发送了 HTTP 状态代码 401: Unauthorized

根据wsdl连接生成客户端代码&#xff0c;调用接口报错&#xff1a;服务器发送了 HTTP 状态代码 401: Unauthorized。查询此错误的原因是没有访问权限&#xff0c;想到客户再提供接口wsdl访问连接的时候提供了用户名和密码。 解决办法&#xff1a; 增加此类 在接口运行前增加此…

前端401错误 解决方法:响应拦截器

目录 1.该问题出现的原因 2.处理401问题的解决方案原理 3.使用响应拦截器解决问题 1.该问题出现的原因 在前后端分离项目中&#xff0c;最常见的是前端点击登录后&#xff0c;后端返回token字符串&#xff0c;这个token可以看作是一个“令牌”&#xff0c;就比如你去酒店办理…

解密网站401错误:了解发生原因和修复方法

​  每个网站都会有不同的错误码&#xff0c;其中&#xff0c;401错误被认为是相对常见的错误码。那么&#xff0c;什么是网站401错误呢?在摸清了这一点之后&#xff0c;我们也需要学习一下如何解决它。 什么是 401 状态码? 401 状态代码是 Web 服务器发送给浏览器的 HTTP …

401 错误原因和解决方案

401.1 您未被授权查看该页 HTTP 错误 401.1 - 未经授权&#xff1a;访问由于 凭据无效被拒绝。 出现问题的原因&#xff1a; 计算机用户名ftpname帐号的密码和IIS中记录的不一致。 出现这个问题的原因就是手工到IIS中修改了用户的登录密码&#xff0c;从而导致计算机用户名…

401错误 解决方法:响应拦截器

关于401错误 401错误场景 1. 用户未登录,代码报401,应该回到登录页 2. 登录用户的token过期 : 怎样理解token过期? . 就是登录成功了以后,后端会返回一个token值,这个值在后续请求时带上&#xff08;就像是开门钥匙), 但是&#xff0c;这个值一般会有有效期&#xff08;具…