`
zhenghuali168
  • 浏览: 74624 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

通过UrlRewriteFilter使动态的URL变成伪静态的URL

阅读更多
UrlRewriteFilter的介绍:
    UrlRewriteFilter是一个用于改写URL的Web过滤器,类似于Apache的mod_rewrite。适用于任何Web应用服务器(如Resin,Orion,Tomcat等)。其典型应用就把动态URL静态化,便于搜索引擎爬虫抓取你的动态网页。
   为什么要使动态的URL变成伪静态的URL:
   1:为了对搜索的友好,因为有些搜索不能抓取动态页面或是对动态抓取的页面没有静态页面高.
   2:屏蔽内部的url结构.
   3:美化url.
   UrlRewriteFilter使用:
     1.下载http://tuckey.org/urlrewrite/#download目前稳定的版本是2.6,最新版3.1,推荐使用2.6版.解压缩后将文件考到相应的web-inf/lib和web-inf下.
     2、配置web.xml

Xml代码 
<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>  

<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>
   根据自己的需要,将相应目录下的url转给UrlRewriteFilter来处理。
   3、配置urlwrite规则文件WEB-INF/urlrewrite.xml
  http://www.5a520.cn/book/116 会直接forward 到 http://www.5a520.cn/book.php?id-116 结果都是"创世传奇之魔族风云 _玄幻小说_小说520网"这个标题.
  http://www.5a520.cn/bookxuanhuan/3  会直接forward 到 http://www.5a520.cn/cata.php?id=bookxuanhuan&index=3 结果都是"玄幻小说_小说520网"这个标题.
配置如下:

Xml代码 
<rule> 
        <from>/book/([0-9]+)$</from> 
        <to>/book.php?id=$1</to> 
    </rule> 
 
<rule> 
        <from>/book([a-z]+)$</from> 
        <to>/cata.php?id=book$1</to> 
</rule> 
 
<rule> 
        <from>/book([a-z]+)/([0-9]+)$</from> 
        <to>/cata.php?id=book$1&amp;index=$2</to> 
</rule> 

<rule>
        <from>/book/([0-9]+)$</from>
        <to>/book.php?id=$1</to>
    </rule>

<rule>
        <from>/book([a-z]+)$</from>
        <to>/cata.php?id=book$1</to>
</rule>

<rule>
        <from>/book([a-z]+)/([0-9]+)$</from>
        <to>/cata.php?id=book$1&amp;index=$2</to>
</rule>


注意:
   1.urlrewrite.xml是utf-8.所以如果你要在rule上加note标签为中文的话,也一定是要utf-8
   2.UrlRewriteFilter 最好是配置在web.xml的前面filter上,不然有可能对有些url转变失去作用.
   3.在写rule的时,如果有多个参数时,中间的连接符号&应该是&amp;

  下面对 urlrewrite.xml标签的一些说明:
  urlrewrite属性:有仅只有一个.
  rule属性::至少一个.

Java代码 
<name> 属性(可选)   
    <rule>  
    <name>World Rule</name>  
    <from>^/world/([a-z]+)/([a-z]+)$</from>  
    <to>/world.jsp?country=$1&amp;city=$2</to>  
    </rule>  
  <note>属性(可选)  
    <rule>  
    <name>World Rule</name>  
    <note>  
        Cleanly redirect world requests to JSP,  
        a country and city must be specified.  
        </note>  
    <from>^/world/([a-z]+)/([a-z]+)$</from>  
    <to>/world.jsp?country=$1&amp;city=$2</to>  
    </rule> 

<name> 属性(可选)
    <rule>
    <name>World Rule</name>
    <from>^/world/([a-z]+)/([a-z]+)$</from>
    <to>/world.jsp?country=$1&amp;city=$2</to>
    </rule>
  <note>属性(可选)
    <rule>
    <name>World Rule</name>
    <note>
        Cleanly redirect world requests to JSP,
        a country and city must be specified.
        </note>
    <from>^/world/([a-z]+)/([a-z]+)$</from>
    <to>/world.jsp?country=$1&amp;city=$2</to>
    </rule>


<condition>属性(可选)
    可以对时间,方法,来源,端口,类型等进行设置,如
    <condition name="user-agent" operator="notequal">Mozilla/[1-4]</condition> 客户端游览器不是Mozilla14版本以下可以访问.

Xml代码 
<condition type="user-in-role" operator="notequal">bigboss</condition> 是bigboss不能访问.  
    <condition name="host" operator="notequal">www.example.com</condition> 主机是www.example.com不能访问  
    <condition type="method" next="or">PROPFIND</condition> 下个rule是PROPFIND可以访问  
    <condition type="method">PUT</condition> 是put类型 

<condition type="user-in-role" operator="notequal">bigboss</condition> 是bigboss不能访问.
    <condition name="host" operator="notequal">www.example.com</condition> 主机是www.example.com不能访问
    <condition type="method" next="or">PROPFIND</condition> 下个rule是PROPFIND可以访问
    <condition type="method">PUT</condition> 是put类型


type属性:
    最主要就是 forward (default):在客户端URL是不转向的 redirect 在客户端URL是转向的,所以一般采用 forward
set属性:这个有点像apache中的rewrite强大之处了.除了下面的设置client,还可以设置cookie,content-   type,charset,header,request



Xml代码 
<rule> 
    <condition name="user-agent">Mozilla/3\.0 (compatible; AvantGo .*)</from> 
    <from>.*</from> 
    <set name="client">AvantGo</set> 
    </rule> 
    <rule> 
    <condition name="user-agent">UP\.Browser/3.*SC03 .* </from> 
    <from>.*</from> 
    <set name="client">Samsung SCH-6100</set> 
    </rule> 
分享到:
评论

相关推荐

    jsp 利用urlrewritefilter实现伪静态

    **标题解析:** ...在JSP应用中,通过使用URLRewriteFilter,我们可以轻松实现URL的伪静态化,提升网站的SEO性能,同时保持代码的灵活性。理解并熟练运用这一技术,有助于提升Web应用的整体质量和用户体验。

    urlrewritefilter实现伪静态

    伪静态的主要目的是使动态URL看起来像静态页面。例如,一个动态的博客文章URL可能是`/article.php?id=123`,而通过URLRewriteFilter,我们可以将其转换为`/article/123`。这不仅让URL更易读,还能帮助搜索引擎更好地...

    UrlRewrite实现伪静态

    - **性能优化**:伪静态URL减少了服务器解析动态URL的负担,提高了网站加载速度。 3. **UrlRewrite组件介绍**: UrlRewrite是基于Filter原理工作的,它可以拦截HTTP请求,根据预设的规则进行URL转换。它支持多种...

    java urlrewrite 实现伪静态化 demo源码

    例如,以下配置将动态URL重写为伪静态URL: ```xml &lt;urlrewrite&gt; 将动态URL转换为伪静态 &lt;from&gt;/product?id=(.*) &lt;to&gt;/product/$1 &lt;/urlrewrite&gt; ``` 在这个例子中,`&lt;from&gt;`标签定义了匹配的URL模式,而`...

    使用URL Rewrite实现网站的伪静态实例(urlrewritefilter-4.0.3)

    - 将一个动态URL如`/product.php?id=123`重写为静态URL`/product/123`,可以这样配置: ``` ^/product\.php\?id=([^&]+) &lt;to&gt;/product/$1 ``` 6. **管理动态参数**: - 使用`&lt;param&gt;`标签可以在`&lt;to&gt;`中...

    java伪静态简单实例

    而静态URL,如 "article.html",更容易被搜索引擎理解和抓取。伪静态技术就是将动态URL转换为静态形式,但实际页面内容仍然是动态生成的。 `urlrewrite`是一个基于Apache Tomcat的URL重写过滤器,它可以方便地实现...

    jsp伪静态,javaweb实现伪静态

    在Java Web开发中,"伪静态"是一种技术手段,它主要用来...通过这种方式,我们可以使Java Web应用在保持动态功能的同时,获得静态URL的诸多优点。在深入理解这些知识点后,你可以根据实际项目需求灵活地应用和扩展。

    urlrewrite伪静态 及多参数传递-附正则表达式语法

    标题中的“urlrewrite伪静态及多参数传递”指的是在Web开发中使用的一种技术,通过URL重写工具(如Apache的mod_rewrite或Tomcat的UrlRewriteFilter)将动态URL转换为静态化的、更友好的形式,同时实现多参数的传递。...

    伪静态.txt伪静态.txt

    根据提供的文件信息,本文将详细解释“伪静态”这一概念,并深入探讨如何通过配置实现URL重写技术,以便将动态URL转换为用户友好的静态URL形式。 ### 一、伪静态概念 伪静态(Pseudo Static)是一种网页链接的表现...

    urlrewritefilter-4.0.3.zip

    例如,一个典型的动态URL如"product.php?id=123",可以通过URLRewriteFilter重写为"product/123.html",用户和搜索引擎看到的是更加友好的静态URL。 配置URLRewriteFilter进行伪静态处理时,需要在配置文件中定义...

    简单的伪静态,看了很多 自己做了一个简单的jsp的伪静态,和大家分享哈,其实很简单的

    UrlRewriteFilter基于Apache mod_rewrite规则,允许开发者通过XML配置文件来定义一系列的URL转换规则,使得动态请求能够映射到特定的JSP页面,从而达到伪静态的效果。 在Java中实现伪静态,通常涉及以下步骤: 1. ...

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

    当用户访问伪静态URL时,URLRewriteFilter会根据配置文件中的规则将请求重定向到相应的动态处理程序。在JSP中,你可以通过Servlet或者控制器来处理这些请求。例如,一个简单的Servlet可以是这样的: ```java ...

    javaweb伪静态

    通过伪静态技术,我们可以让动态页面拥有静态URL的形式,但其实质仍然是动态生成的内容。 首先,我们要理解为什么需要伪静态。搜索引擎对静态页面的友好度高于动态页面,因为静态页面的内容在服务器生成后不再改变...

    urlrewritefilter-4.0.3.jar 实现网站伪静态301重定向

    网站伪静态301重定向是网页优化与搜索引擎友好性的重要技术之一,它可以使动态URL看起来像静态页面,便于用户理解和搜索引擎抓取。`UrlRewriteFilter` 是一个基于Java的URL重写工具,适用于Tomcat等Servlet容器,...

    伪静态 urlrewrite

    - **SEO优化**:通过伪静态URL,搜索引擎更容易抓取和理解网页内容,提升排名。 - **路径美化**:使URL更加简洁、美观,提高用户友好度。 - **隐藏参数**:对于安全性或隐私性较高的参数,可以避免在URL中直接...

    urlrewrite重写URL伪静态请求路径.

    URL重写允许我们将复杂的动态URL转换为简洁、易于理解和友好的静态URL形式,即使这些页面实际上是动态生成的。在这个过程中,`urlrewrite`工具扮演了关键角色。 `urlrewrite`是一个基于Apache服务器的模块,主要与...

    JSP伪静态实现

    它通过URL重写等手段,将原本带有查询字符串的动态URL转换为易于记忆且对搜索引擎友好的静态URL格式。这种技术不仅能够提高用户体验,还能增强网站的SEO效果。 #### 二、JSP伪静态技术实现原理 JSP伪静态技术的...

    urlrewritefilter-3.2.0下载

    通过使用UrlRewriteFilter,开发者可以在Struts和JSP应用中实现URL的伪静态化,即让动态页面的URL看起来像静态页面的URL,这对于SEO尤其有利,因为搜索引擎更容易抓取和理解静态化的URL。 标签"struts伪静态"意味着...

    JAVA实现URL rewrite伪静态_.docx

    总结来说,这个Java实现的URL重写系统是基于Servlet Filter机制的,通过定义和应用规则来实现动态URL到静态URL的转换,提高了网站的用户体验和SEO性能。代码中使用了自定义的`Rule`类来存储和处理规则,以及`...

    静态地址和静态URL

    **定义:** 伪静态URL是一种技术手段,它通过对动态生成的页面进行URL重写,使其看起来像静态页面,但实际上仍然是动态生成的。这种方式既保留了动态页面的灵活性,又具有静态页面的部分优势。 **优点:** - 提升...

Global site tag (gtag.js) - Google Analytics