`
pany
  • 浏览: 90515 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

网站的静态化处理

web 
阅读更多

urlrewritefilter 下载: http://tuckey.org/urlrewrite/#download

 所用基于动态的url http://www.nihaoblog.com/content.jsp?id=1&contentid=404按照各大搜索引擎的喜好,应该美化成http://www.nihaoblog.com/content/1_404.html静态网页的方式,尽管目前的google及几大搜索引擎宣称支持动态页网的抓取,但与传统的html文件相比较抓取率仍不在一个数量级。Apche的mod_rewrite模块具有此功能,但是对于租用虚拟主机的用户来说就比较麻烦不太可能对所有运营商有更多的要求,需要条件依赖就不具通用性。

    目前有一个解决方法,通过UrlRewriteFilter可以完全实现动态URL表态化,你可以将它直接应用到你的web应用中,不管你用的是jsp+javabean还是struts. 
    
下面是使用方法:
    1、下载http://tuckey.org/urlrewrite/#download目前版本是1.2,解压缩后将文件考到相应的web-inf/lib和web-inf下,。
    2、配置web.xml
xml 代码
  1. <filter>    
  2.        <filter-name>UrlRewriteFilter</filter-name>    
  3.        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>    
  4. </filter>    
  5. <filter-mapping>    
  6.        <filter-name>UrlRewriteFilter</filter-name>    
  7.        <url-pattern>/*</url-pattern>    
  8. </filter-mapping>  
 
根据自己的需要,将相应目录下的url转给UrlRewriteFilter来处理。
   3、配置urlwrite规则文件WEB-INF/urlrewrite.xml 
配置如下: 
  1. <rule>    
  2.     <from>/content/([0-9]+)_([0-9]+).html</from>    
  3.     <to>/content.jsp?id=$1&amp;contentid=$2</to>    
  4. </rule>  
xml 代码
    
注意:有多个参数时,中的连接符号&应该是& 
熟悉正则表达式的朋友可能一看就是明白rule的匹配原理了。更多的配置可以参照http://tuckey.org/urlrewrite/manual/

每个网页或请求都是一个url地址,一般,这个地址可能是.do,.page,.action之类的并加上'?'号、'&'号查询串等构成的一个长长的的url。很urgly。

一般的url----------------------------------------------------------较好的url
http://www.xxx.net/user/profile.do?id=20001 ====> http://www.xxx.net/user/20001
http://www.xxx.net/forum/board.do?name=java ====> http://www.xxx.net/forum/java
http://www.xxx.net/forum/thread.do?id=29923 ====> http://www.xxx.net/thread/29923

后者明显较为直观和漂亮。

使用url rewrite可以很好的改善这个状况。网站url rewrite应用是非常广泛的,良好的url设计给用户带来的非常好的体验,同时也能吸引搜索引擎的注意。

一种rewrite称为一个规则,上面的例子就是3个规则。rewrite技术可以在代理服务器实现,或者可以在tomcat之类的java web服务器实现。 Apache HTTP Server 2.x 和 mod_proxy提供了不错的Rewrite处理方法。so如果使用apache,则直接在apache中配置Rewrite即可。但是对于没有使用代理,或者不完全要在代理服务器配置Rewrite的web应用,通过第三方Jar包也是可以实现很perfect的rewrite技术的。这是本帖的着重点。

这个第三方包的地址是:http://tuckey.org/urlrewrite/ (待会再去这个网站,现在先别去)

这个包使用正则表达式仿照了apache rewrite的做法。而实现原理也是很明晰的:filter,forward,redirect机制组合:

在web.xml配置一个UrlRewriteFilter,拦截所有进来的请求,对服务要求的请求进行rewrite。比如,对http://www.xxx.net/user/([0-9]+)请求,forward到/profile.do?id=$1。这就是一条规则。在这个第三方包中的规则文件urlrewrite.xml中可以这样定义:

代码
  1. <rule>  
  2.     <from>^/user/([0-9]+)/?$from>  
  3.     <to type="forward">/profile.do?id=$1to>  
  4. rule>  

 

对我来说,一般我会配置一个通用的rule,使所有没有包含"."的url forward到.do的action上来(本人使用strut做系统较多)

 

代码
  1. <rule>  
  2.     <note>  
  3.         - 这是一个通用请求url rewrite   
  4.         - 将请求forword url加上“.do”的处理器上。   
  5.         - 例:   
  6.         -   请求 http://{domain}/user/login    将被forward到 http://{domain}/user/login.do   
  7.         -   请求 http://{domain}/user/login/   将被forward到 http://{domain}/user/login.do   
  8.         -   请求 http://{domain}/user/logout/  将被forward到 http://{domain}/user/logout.do   
  9.     note>  
  10.     <from>^/([_a-zA-Z]+[_0-9a-zA-Z-/]*[_0-9a-zA-Z]+)/?$from>  
  11.     <to type="forward">/$1.doto>  
  12. rule>  

 

上面只是介绍个大概,并不是urlrewriter这个jar包的使用指南。如果你觉得这种rewrite做法不错的话,不如直接访问这个网站吧 http://tuckey.org/urlrewrite/

第一步:从http://tuckey.org/urlrewrite/ 上下载urlrewrite-3.0.3.jar包,放到webapp classpath下

第二步:在web.xml配置UrlRewriteFilter:

 

代码
  1. <filter>  
  2.     <filter-name>UrlRewriteFilterfilter-name>  
  3.     <filter-class>  
  4.         org.tuckey.web.filters.urlrewrite.UrlRewriteFilter   
  5.     filter-class>  
  6.     <init-param>  
  7.         <param-name>logLevelparam-name>  
  8.         <param-value>WARNparam-value>  
  9.     init-param>  
  10. filter>  
  11. <filter-mapping>  
  12.     <filter-name>UrlRewriteFilterfilter-name>  
  13.     <url-pattern>/*url-pattern>  
  14. filter-mapping>  

 

 

第三步:在web-inf下新建urlrewrite.xml文件,简单填入以下内容:

 

代码
  1. <!---->xml version="1.0" encoding="utf-8"?>  
  2.     "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">  
  3.   
  4. <urlrewrite>  
  5.     <rule>  
  6.         <note>  
  7.             - 这是一个通用请求url rewrite   
  8.             - 将请求forword url加上“.do”的处理器上。   
  9.             - 例:   
  10.             -   请求 http://{domain}/user/login    将被forward到 http://{domain}/user/login.do   
  11.             -   请求 http://{domain}/user/login/   将被forward到 http://{domain}/user/login.do   
  12.             -   请求 http://{domain}/user/logout/  将被forward到 http://{domain}/user/logout.do   
  13.         note>  
  14.         <from>^/([_a-zA-Z]+[_0-9a-zA-Z-/]*[_0-9a-zA-Z]+)/?$from>  
  15.         <to type="forward">/$1.doto>  
  16.     rule>  
  17.   
  18. urlrewrite>  

 

 

第四步:启动web应用,将原来需要.do的请求改为去掉.do后请求,看看结果。

第五步:更详细的规则定义,请看http://tuckey.org/urlrewrite/manual/3.0/

转自:http://www.nihaoblog.com/1_733.html  http://www.iteye.com/article/53834

分享到:
评论

相关推荐

    asp.net TO html 网站静态化处理

    ASP.NET到HTML的网站静态化处理是一个常见的技术实践,它主要目的是提高网站的访问速度、SEO优化以及降低服务器负载。这个程序提供了一种自动化的方法,将动态生成的ASP.NET页面转换为静态的HTML文件,无需编写额外...

    大型网站技术-网站静态化处理

    网站静态化处理是大型网站技术中的重要一环,旨在提高网站性能、降低服务器负载和提升用户体验。在描述中提到了几个关键概念,包括CSI(可能是Content Serving Infrastructure,内容分发基础设施)、web前端优化、...

    页面静态化处理

    页面静态化处理是一种提高网站性能和用户体验的技术,它将动态生成的网页转换为静态HTML文件,用户请求时直接返回这些预先生成的文件,而非每次都执行数据库查询和其他服务器端逻辑。这种方式降低了服务器负担,加快...

    易语言网站静态生成器源码.rar

    而对于有经验的开发者,这可能是一个学习网站静态化处理策略和技巧的好例子。 总结来说,易语言网站静态生成器源码提供了深入学习网站静态化和易语言编程的机会。通过对源码的分析和实践,不仅可以提升编程技能,还...

    大型站点网站静态化实现方案

    网站静态化是提升大型站点性能和可扩展性的重要策略,尤其在处理高并发访问和优化SEO(搜索引擎优化)方面有着显著优势。以下是对这个大型站点网站静态化实现方案的详细解读。 1. **静态化原理**: 静态化是将动态...

    httpclient 静态化网站 project

    【标题】"httpclient 静态化网站 project...通过这个项目,开发者可以学习到如何利用HttpClient进行网络通信,以及如何设计和实现一个完整的网站静态化解决方案。这对于提升Web开发技能和理解网络爬虫原理非常有价值。

    ASP.NET页面静态化,伪静态化

    ASP.NET页面静态化和伪静态化是Web开发中提高网站性能和SEO优化的重要技术。页面静态化是指将原本动态生成的HTML页面转化为静态HTML文件,这样用户请求时无需执行服务器端的代码,直接从硬盘读取文件,提高了访问...

    动态网站静态化的实现方法

    ### 动态网站静态化的实现方法 随着互联网技术的发展与用户需求的变化,网站设计与开发领域不断探索新的优化方案以提升用户体验与系统性能。其中,动态网站静态化是一种被广泛采用的技术手段,尤其是在Java EE环境...

    网页静态化例程 网站静态化学习的第一步

    在本文中,我们将深入探讨如何实现一个简单的网页静态化过程,以"网页静态化例程 网站静态化学习的第一步"为例,结合开发环境MyEclipse和MySQL数据库。 首先,我们要理解静态化的基本概念。静态化是指将动态生成的...

    freemarker权威版 网站静态化

    在网站静态化的过程中,Freemarker扮演着关键角色。通过将动态数据注入到预定义的模板中,它能够生成HTML或其他静态格式的文件,从而极大地提高了网站的访问速度,减轻了服务器的负担。 在网站静态化时,Freemarker...

    一个静态化的例子(利用模板生成静态化页面)

    在IT行业中,静态化是一种常见的优化网站性能的技术。它涉及到将动态生成的网页转换为静态HTML文件,以便用户可以直接从服务器获取,而无需通过复杂的服务器端脚本处理。这种技术可以显著提高页面加载速度,减轻...

    PHP 直接静态化和触发静态化

    直接静态化是指在处理请求时,将生成的HTML内容直接保存为静态文件。当后续相同的请求到达时,服务器会直接返回这个静态文件,而不是再次执行PHP脚本。这种方法的优点在于减少了服务器的计算负担和数据库查询,提高...

    ASP静态化插件

    ASP静态化插件是一种用于提升网站性能和SEO优化的工具,尤其在处理高访问量的ASP(Active Server Pages)网站时显得尤为重要。该插件的主要功能是将动态生成的ASP页面转换为静态的HTML页面,从而减少服务器的负担,...

    网站采用前台全静态化

    网站采用前台全静态化是一种常见的优化策略,旨在提高网页加载速度、降低服务器压力以及提升用户体验。这一技术将动态网页在用户请求时预先转化为HTML静态页面,使得用户无需通过复杂的服务器端脚本处理即可直接获取...

    SpringBoot2 整合FreeMarker模板,完成页面静态化处理.docx

    【SpringBoot2 整合FreeMarker模板,完成页面静态化处理】 在Web开发中,页面静态化是一种提高网站性能和用户体验的技术。它涉及到将原本动态生成的页面转换为静态HTML文件,减少对服务器的依赖,加快页面加载速度...

    cms页面静态化源码

    部分页面静态化则只对经常访问或对性能要求高的页面进行静态化处理。 在CMS系统中实现页面静态化,通常包括以下步骤: 1. **内容发布**:当用户在后台编辑并发布内容时,系统会生成对应的静态HTML文件。 2. **URL...

    rewrite文件,iis静态文件配置,php网站静态化文件

    `Rewrite`文件、IIS(Internet Information Services)静态文件配置以及PHP网站静态化文件是实现这一目标的关键技术环节。下面将详细解释这些概念及其在实际应用中的作用。 1. **Rewrite文件**: `Rewrite`文件...

    动态页面静态化汇总--页面静态化方案

    在静态化过程中,URLRewrite可以将动态URL转换为伪静态格式,使得用户和搜索引擎看到的是看似静态的URL,而实际上这些请求仍被转发到动态处理程序。通过这种方式,可以提升用户体验,同时利于SEO优化。 4. **JSP+...

    帝国cms TAG静态化插件.zip

    "帝国cms TAG静态化插件"是专门为这个系统设计的一款扩展插件,它的主要目标是实现TAG标签的静态化处理,以提升网站的加载速度和SEO优化。 在网站运营中,TAG标签是一种常用的内容组织方式,它能够将具有相似主题的...

    .net页面静态化

    .NET页面静态化是一种提高网站性能和搜索引擎优化(SEO)的技术,它通过将动态网页转换为HTML文件存储在服务器上,从而减少服务器处理时间并减轻数据库负载。这种技术尤其适用于那些内容相对固定、更新频率不高的...

Global site tag (gtag.js) - Google Analytics