`

urlrewirte基本配置与常见问题.

阅读更多

      项目中用到urlrewrite来伪静态化url地址,故对urlrewrite进行了简单的研究应用。在此把基本配置和常见的问题记录下来,以备后用。

 

      urlrewritefilter简介 :是一个用于改写url的web过滤器,类似于Apache的mod_rewrite,适用于任何web服务器(tomcat,jboss,jetty等),他是一个把url进行伪静态化的开源工具包,并不是真正的静态化。典型的应用就是把weburl静态化,以便于搜索引擎爬虫抓取你的页面。

 

      引入urlrewrite的目的:

      1):为了对搜索友好,因为搜索进行对动态url抓取没有对静态url高。

      2):屏蔽内部url结构,使应用相对安全,提高网站的可移植性。

      3):在一定成度上也对url地址有美化和从简的作用。

 

      简单示例

 

http://www.xxx.net/user/profile.do?id=20001====>http://www.xxx.net/user/20001
http://www.xxx.net/forum/board.do?name=jav ====>http://www.xxx.net/forum/java
http://www.xxx.net/forum/thread.do?id=29923 ====>http://www.xxx.net/thread/29923 
 

 

      urlrewritefilter基本配置步骤

      1):下载urlrewrite包,并把他考到项目的WEB-INF/lib目录下。

               注:如果项目中使用了maven,并搭建了nexus数据仓库,则可以直接通过nexus进行搜索,并选择你需要的版本,把xml配置复制到你工程的pom.xml中即可。

 

      2):在WEB-INF目录下添加rewrite.xml文件。rewrite.xml的dtd头比较重要,如果dtd头中的版本号与实际urlrewrite包版本不匹配的话会报如下错误:

 

org.tuckey.web.filters.urlrewrite.Conf ERROR:
Exception loading conf  Connection timed out:connect java.net.ConnectException:
Connection timed out: connect 

 

       3):在web.xml文件中添加urlrewritefilter过滤器:

 

<filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
 

       4):在rewrite.xml文件中配置你自己的url转换规则,简单示例如下:

 

<?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">
<urlrewrite> 
    <rule>
        <name>World Rule1</name>
        <note>注释1</note>
        <from>^/newbie</from>
        <to type="forward">/newbie.jsp</to>
    </rule>
    <rule>
        <name>World Rule2</name>
        <note>注释2</note>
        <from>^/self-service</from>
        <to type="forward">/self-service.jsp</to>
    </rule>
</urlrewrite>
 

      配置urlrewirte注意事项:

      1):urlrewirte.xml文件的编码格式为utf-8,如果<note>节点中有中文,那么中文编码也必须是utf-8编码的。

      2):配置web.xml的时候,urlrewritefilter过滤器必须配置在struts2的拦截器之前,否则urlrewritefilter过滤器有可能对某些url不起作用。

      3):strtus2的filter-mapping一定要添加:<dispatcher>FORWARD</dispatcher>

      4):在写rule的时,如果有多个参数时,中间的连接符号&应该是&amp;

      5):urlrewrite.xml标签的一些说明:

                urlrewrite属性:有仅只有一个.

                rule属性::至少一个

 

     urlrewrite可能引起的错误:

      1):connect java.net.ConnectException异常

 

org.tuckey.web.filters.urlrewrite.Conf ERROR:
Exception loading conf  Connection timed out:connect java.net.ConnectException:
Connection timed out: connect 

      1-R:rewrite.xml配置文件的dtd头有问题,打开urlrewrite包,查看相应的dtd版本信息。

 

      2):404错误:

      2-R:strtus2的filter-mapping一定要添加:<dispatcher>FORWARD</dispatcher>,或者在urlrewritefilter过滤器的filter-mapping中添加相应属性,如下:

<filter>
    <filter-name>urlRewrite</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>urlRewrite</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
</filter-mapping>
 

    本文参考了网上很多朋友的相关文章,并结合自身的特点进行了简单的汇总,在此谢谢这些朋友的文章。

    下面博客对urlrewrite进行了详细研究:

    http://blog.csdn.net/lgg201/archive/2010/02/26/5329364.aspx

 

 

 

 

 

分享到:
评论

相关推荐

    jsp URLRewirte地址静态化

    jsp URLRewirte地址静态化 jsp URLRewirte地址静态化

    JSP使用URLRewirte实现静态 例子

    JSP使用URLRewirte实现url地址伪静态化 内有小例子

    JSP使用URLRewirte实现url地址伪静态化

    JSP使用URLRewirte实现url地址伪静态化

    urlrewrite 3.2.0 java包

    urlrewirte下载的官方网站打不开了,网上大多数是2.6.0的版本,我重新上传一个正在使用的比较新的版本。

    pyzmq-15.1.0-py2.7-macosx-10.6-intel.egg

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    51单片机库(基于12M晶振).zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    keke-15-cdn.mobileconfig

    keke-15-cdn.mobileconfig

    2024-2030年生鲜乳行业市场调研及前景趋势预测报告.pdf

    2024-2030年生鲜乳行业市场调研及前景趋势预测报告.pdf

    2024-2030年尼龙 66市场调研及前景趋势预测报告.pdf

    2024-2030年尼龙 66市场调研及前景趋势预测报告.pdf

    aiohttp-3.8.0a7-cp36-cp36m-musllinux_1_1_s390x.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    pyzmq-25.1.2-cp38-cp38-macosx_10_9_x86_64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    2024-2030年袜子行业市场调研及前景趋势预测报告.pdf

    2024-2030年袜子行业市场调研及前景趋势预测报告.pdf

    图书借阅系统小程序端.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    将用户添加到docker组

    linux常用命令大全

    java课程设计:基于SpringBoot的图书馆管理系统.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    pyzmq-26.0.0-cp311-cp311-musllinux_1_1_aarch64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    Sublime Text 是一个轻量级、跨平台的文本和源代码编辑器,它支持多种编程语言和标记语言

    Sublime Text 是一个轻量级、跨平台的文本和源代码编辑器,它支持多种编程语言和标记语言。Sublime Text 的主要功能和作用包括: 1.代码编辑:Sublime Text 提供了强大的代码编辑功能,包括语法高亮、代码折叠、自动完成、代码缩进和格式化等,这些功能有助于提高编程效率和代码的可读性。 2.多语言支持:Sublime Text 支持多种编程和标记语言,如 Python、JavaScript、HTML、CSS、Markdown 等,几乎适用于所有的软件开发需求。 3.插件扩展:Sublime Text 有一个丰富的插件生态系统,用户可以通过安装插件来扩展编辑器的功能,如版本控制集成、代码调试、语法检查等。 4.跨平台:Sublime Text 可在 Windows、macOS 和 Linux 操作系统上运行,用户可以在不同的设备上使用相同的编辑器。 5.高性能:Sublime Text 设计轻巧,启动速度快,即使是在打开大型文件时也能保持良好的性能。 6.自定义功能:用户可以自定义编辑器的界面、快捷键、编辑行为等,以适应个人的编码习惯和偏好

    毕业设计:基于C++的AP聚类算法设计与实现.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    aiohttp-3.9.2-cp38-cp38-musllinux_1_1_i686.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    C语言程序设计:基于Qt实现的叫号系统,模拟银行、医院的取号叫号系统.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

Global site tag (gtag.js) - Google Analytics