`
wlo_o
  • 浏览: 50508 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Urlrewrite配置不当造成死循环问题解析

    博客分类:
  • Java
阅读更多

OECP社区中需要对博客标签进行url重写,把类似“/blogs/tag/tagIndex?key=业务组件”的url转成“/blogs/tag/业务组件”(其中粗体的是标签关键字),但是配置完后点击链接时后台总是循环报错。

 

下面是我配置的重写规则

 

<rule>  
        <note>博客标签</note>  
        <from>^/blogs/tag/(.*)/$</from>  
        <to>/blogs/tag/tagIndex\?key=$1</to>  
</rule>  
<outbound-rule>  
        <note>博客标签反向url</note>  
        <from>/blogs/tag/tagIndex\?key=(.*)$</from>  
        <to>/blogs/tag/$1/</to>  
</outbound-rule>  

 
看上去没什么问题。反向url解析也是正常的。但是点击链接时总是在循环报错。
通过跟踪后发现链接请求是先通过urlrewrite过滤器,将请求的链接/blog/tag/业务组件与规则匹配后转换成/blog/tag/tagIndex?key=业务组件。然后使用新链接地址通过Request的forward进行跳转,又经过urlrewrite过滤器时问题出现了,本应该直接跳转的链接/blog/tag/tagIndex?key=业务组件又与规则^/blogs/tag/(.*)$ 匹配。过滤器代码中形成了死循环链接被不断的重写,直至无法解析报错。

找出问题原因后修改就简单了。由于解析后的链接都包含tagIndex?key=开头,只要排除以tagIndex?key=的tag关键字就了。稍加改动后就变成如下。

 

博客标签urlrewrite规则

<rule>  
       <note>博客标签</note>  
       <from>^/blogs/tag/([^tagIndex\?key=].*)/$</from>  
       <to>/blogs/tag/tagIndex\?key=$1</to>  
</rule>  

 添加上[^tagIndex\?key=]后重启服务器问题解决。

 

本文转自http://po-soft.com/hi/wlo_o/blog/1966。转载请注明出处。

更多内容请访问OECP社区

分享到:
评论

相关推荐

    URLRewrite配置和使用

    URLRewrite配置和使用 URLRewrite是一种URL重写技术,它可以满足搜索引擎的要求,隐藏技术实现,提高网站的移植性,并满足美感的要求。下面将详细介绍URLRewrite的配置和使用。 1. 满足搜索引擎的要求 搜索引擎对...

    urlrewrite2伪静态与使用文档(IIS)

    这个文档很可能包含了urlrewrite2的详细配置指南、规则语法解析、常见问题解答以及如何在IIS与PHPWAMP环境下进行配置的实例。建议仔细阅读该文档,以便深入理解和熟练运用urlrewrite2。 总之,urlrewrite2在IIS环境...

    urlrewrite 支持自定义多配置文件

    confPath 默认 /WEB-INF/urlrewrite.xml 只支持一个配置文件,为了更好的阅读和维护,修改了源码: 1.如果想用原生的urlRewriteFilter confPath 请放完整地址(eg:WEB-INF/urlrewrite.xml); 2.如果想读多个配置文件,...

    urlrewrite 支持自定义多配置文件(*通配符)

    urlrewrite 只支持单个配置文件,默认的配置文件为:/WEB-INF/urlrewrite.xml 现在对urlrewrite-3.2的源码进行了修改,使它能够支持多文件和通配符的形式加载自定义配置文件,即可以进行如下的配置: &lt;param-name&gt;...

    urlrewrite地址重写实例配置说明

    **URLRewrite地址重写**是Web开发中一个重要的技术,它主要用于优化和管理网站的URL,使得URL更友好、更具可读性,同时也能够实现动态URL到静态URL的转换,提升SEO效果。URLRewrite通常与Apache的mod_rewrite或者在...

    UrlRewrite例子

    如果规则设置不当,可能导致匹配到错误的规则或者陷入死循环。另外,正则表达式的编写也需要谨慎,避免出现过度匹配或匹配不足的情况。在"UrlRewrite例子"中,文件可能包含了这些错误的示例,供学习者参考和避免。 ...

    urlrewrite-maven-example.zip

    在本篇文章中,我们将深入探讨URLRewrite的核心概念和使用方法,并通过实例解析如何在项目中集成和配置。 URLRewrite 2.5.2是其较早的一个稳定版本,但随着时间的推移,开发团队已经推出了更新的2.6版本,新版本...

    UrlRewrite.rar

    同时,UrlRewrite提供了一种日志功能,可以记录重写过程中的信息,帮助开发者进行问题排查和优化。 四、URL重写的应用场景 1. SEO优化:通过消除动态参数,创建有意义的、包含关键词的URL,提升搜索引擎排名。 2. ...

    java urlrewrite解决默认页问题

    通过上述配置,我们可以有效地利用Java URL Rewrite解决默认页面问题,使得应用程序的URL更加友好且易于管理。这对于提升用户体验和系统的整体质量都有着重要的意义。同时,在实际应用中还需要关注配置细节以及可能...

    UrlRewrite域名重写

    UrlRewrite是一个强大的URL管理工具,常用于ASP.NET应用程序中,它允许开发者通过自定义规则对网站的URL进行重写和转换。这个技术的核心在于提供更友好的、搜索引擎优化(SEO)的URL,同时也可以帮助解决网站迁移或...

    urlrewrite

    本文将重点讲解Java环境下的URL重写工具——URLRewrite,并深入探讨其工作原理、配置与应用。 一、URLRewrite简介 URLRewrite是基于Apache开源项目Tuckey开发的一款强大的URL管理过滤器,它可以方便地进行URL重写...

    urlrewrite包和配置文件

    在web.xml中配置UrlRewriteFilter,意味着我们需要声明一个过滤器条目,指定它的类名(`org.tuckey.web.filters.urlrewrite.UrlRewriteFilter`)以及配置文件的位置(通常是在&lt;context-param&gt;`中指定的`urlrewrite....

    URLRewrite.dll

    总之,`URLRewrite.dll`是IIS服务器中实现URL重写和伪静态的关键工具,通过对源码示例的分析,我们可以更深入地了解其工作原理,并在实际项目中灵活运用,提升网站的质量和用户体验。通过遵循最佳实践,我们可以确保...

    java urlrewrite jar及简单配置

    3. **创建配置文件**:URLRewriteFilter的规则通常定义在`WEB-INF/urlrewrite.xml`文件中。例如,以下规则会将所有以"/article/"开头的请求重定向到对应的Servlet处理: ```xml &lt;urlrewrite&gt; &lt;from&gt;/article/(....

    URLrewrite-实例

    本文将深入探讨URL重写的基本概念,并以Java实现的开源库`URLrewrite`为例,详细解析其实现方式和应用场景。 首先,理解URL重写的核心概念。URL重写是服务器端的一种技术,通过HTTP服务器或应用程序动态改变请求和...

    urlrewrite3.04的demo

    3. **可维护性**:通过规则配置,可以轻松修改URL结构,减少因为URL改变导致的链接失效问题。 **二、URLRewrite 3.0.4的核心功能** 1. **URL美化**:将复杂的动态URL转换为简洁的静态化形式。 2. **参数传递**:在...

    iis urlrewrite文件

    这个模块允许管理员和开发者通过自定义规则来重写和管理网站的URL,从而提高网站的SEO优化、实现友好的URL结构以及解决各种URL相关的路由问题。在本篇文章中,我们将深入探讨IIS URL Rewrite的相关知识点。 一、URL...

    IIS Urlrewrite2

    1. **安装**:下载并安装IIS URL重写2的扩展,通常是`IIS Urlrewrite2.exe`文件,通过IIS Manager进行安装。 2. **添加规则**:在IIS Manager中选择目标站点,然后在“管理服务”下找到“URL重写”,点击“添加规则...

    netcn_URLRewrite

    什么是UrlRewrite UrlRewrite 是 将动态页面转换为静态页面的一种技术 例如 您网站页面是 http: www yourdomain com news docread aspx id 123 为什么使用UrlRewrite: 1 处理这样的情形:你要更改你的web应用...

    UrlRewrite.dll

    UrlRewrite.dll是IIS URL重写模块的核心组件,通过这个DLL,IIS能够解析并执行重写规则,从而改变请求的实际目标。 在Windows 7或Windows 8操作系统中,如果开发者在部署或调试Web应用程序时遇到与URL重写相关的...

Global site tag (gtag.js) - Google Analytics