`
ww1224
  • 浏览: 27426 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

神奇的url重写-动态页面静态化(II)

阅读更多
接上一章的动态页面静态化。
方法二、通过url重写。既动态页面与静态页面使用同样的url来实现。
例如:原请求为:href="tradesite.jspa?path=jtwl&id=1234"
重写后为:href="tradesite/jtwl/1234.htm"
通过这样的重写我们能保证动态页面与静态页面使用同样的url地址访问。这样在生成静态页的时候就不存在替换动态url链接的操作了。
实现步骤:
1.在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>trace</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>UrlRewriteFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

没错就是一个过滤器而已。定义了使用哪个类来进行url重写、
当然要导入相应的url重写jar包:urlrewrite-3.0.4.jar
class:指明使用这个类的路径。
<param-name>logLevel</param-name>
<param-value>trace</param-value>
指明debug模式。
filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
表示对所有的url都进行重写。
还没有完。
这时候要建立url重写规则配置文件urlrewrite.xml。主要是通过正则表达式来匹配实际要访问的url去。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN" "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
<urlrewrite default-match-type="regex">
	<rule>
		<from>^/more/([a-zA-Z0-9]+)/([0-9]+)\.htm$</from>
		<to>/secondpage.jspa?path=$1&amp;id=$2</to>
	</rule>
	<rule>
		<from>^/difang/([a-zA-Z0-9]+)/([0-9]+)\.htm$</from>
		<to>/difangsite.jspa?path=$1&amp;locpid=$2</to>
	</rule>
	<rule>
		<from>^/index\.htm$</from>
		<to>/index.jspa</to>
	</rule>
	<rule>
		<from>^/localservice/([a-zA-Z0-9]+)\.htm$</from>
		<to>/localservice.jspa?path=$1</to>
	</rule>
	<rule>
		<from>^/toolclass/([a-zA-Z0-9]+)/([0-9]+)\.htm$</from>
		<to>/toolclassbytpid.jspa?path=$1&amp;tpid=$2</to>
	</rule>
	<rule>
		<from>^/toolsite/([a-zA-Z0-9]+)/([0-9]+)\.htm$</from>
		<to>/toolsitebycid.jspa?path=$1&amp;tcid=$2</to>
	</rule>
	<rule>
		<from>^/tradeservice/([a-zA-Z0-9]+)\.htm$</from>
		<to>/tradeservice.jspa?path=$1</to>
	</rule>
	<rule>
		<from>^/trade/([a-zA-Z0-9]+)/([0-9]+)\.htm$</from>
		<to>/tradesite.jspa?path=$1&amp;tradepid=$2</to>
	</rule>	
	<rule>
		<from>^/([a-zA-Z0-9_\-/]*)css/(.*\.css)$</from>
		<to>/css/$2</to>
	</rule>
	<rule>
		<from>^/([a-zA-Z0-9_\-/]*)js/(.*\.js)$</from>
		<to>/js/$2</to>
	</rule>
	<rule>
		<from>^/([a-zA-Z0-9_\-/]*)pic/(.*)$</from>
		<to>/pic/$2</to>
	</rule>
</urlrewrite>


配置文件的名称必须这样命名。因为在filter中已经规定了它会负责读取urlrewrite.xml然后进行请求。
通过这个配置文件也都能看得出只要页面中的链接能匹配到这里的配置规则、则会将它转译到新的url再次进行跳转。
它的神奇之处在于 能替换所有的url包括页面中需要引入的css、js、image等文件夹。
这样你在生成静态页时既不需要你重新修改页面链接。生成的文件目录名正好是你配置规则转译之前的目录结构。例如href="tradesite/jtwl/1234.htm"
生成后的目录即位:根目录/tradesite/jtwl/1234.htm/
在特殊需求下还会变为:根目录/tradesite/jtwl/1234/curr/时间毫秒值1293413755437.htm
这样在每次生成静态页时则不会覆盖原来的文件。而可以设定规则让用户每次访问到的为时间值最大的那个文件。

分享到:
评论

相关推荐

    asp.net Url重写与动态生成静态页面

    这是一个非常实用的:asp.net Url重写与动态生成静态页面。效果很好

    UrlReWrite(Url重写或伪静态)完美示例源码

    描 述:UrlReWrite(Url重写或伪静态)完美示例源码 UrlReWrite(Url重写或伪静态)完美示例源码,已利用ActionlessForm解决原始地址form回传的问题 例如:/products.aspx?category=books 转换为/products/Books....

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

    URL重写 页面静态化 伪静态化,实现页面静态化。

    PHP实现使用页面静态化

    PHP页面静态化,是把那些内容不常变化的页面静态化,而不通过动态程序从数据库或者缓存中读出,以此来增加响应速度和减轻服务器压力。PHP静态化分为:纯静态化和伪静态化;纯静态化又分为:局部静态化和完全静态化。

    Asp.NET 中的Url重写 以及页面静态化

    不会的可以看看,里面有注释,附带数据库

    Url重写篇视频------本讲将通过实例比较ASP.NET下的三种典型URL重写方案

    尽管这样的default.aspx页面实际上永远不会被真正执行,但是有他们的帮助,就能让IIS顺利地将页面请求转发至ASP.NET解析器,从而,使得基于HTTPModule的URL重写规则,被执行。 好了,创建这两个目录及default.aspx...

    Java高并发:静态页面生成方案--UrlRewrite

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

    JAVA 实现URL重写工具 UrlRewriter Java v2.0 RC1-urlrewriterjava

    在当前的项目开发过程中,我们采用了URL重写技术以提升网站地址的易读性,并确保搜索引擎能够更快地索引我们的站点。URL重写,简而言之,就是对网页地址进行优化美化的过程。众所周知,许多服务器都支持URL重写技术...

    UrlRewriter.dll实现的URL重写

    URL 重写用UrlRewriter.dll实现伪静态页面的效果

    UrlRewriter url重写

    第一:有利于搜索引擎的抓取,因为现在大部分的搜索引擎对动态页面的抓取还比较弱,它们更喜欢抓取一些静态的页面。 而我们现在的页面大部分的数据都是动态的显示的。这就需要我们把动态页面变成静态的页面,有利于...

    PHP实现页面静态化1

    二、主要技术本案例主要使用PHP 7中的文件读写功能与ob缓存机制实现纯静态页面的生成,使用正则表达式和url重写实现伪静态页面的生成 三、效果图展示实现效果图

    ecshop2.72 在IIS7环境下配置Rewrite (URL 静态化)规则工具及方法

    ecshop2.72 在IIS7环境下配置Rewrite (URL 静态化)规则工具及方法

    asp.net实现url伪静态及分页

    可以实现重写url地址,及生成新闻静态页面功能

    nicewords.英文版.3.07 最新版

    欢迎您选择NiceWords! ===安装=== ...txt.htaccess ----apache的url重写文件,如果希望开启,可以改名为 .htaccess install ----安装程序。安装完成后可以删除 robots.txt ----禁止搜索引擎爬非网页目录

    netcn_URLRewrite

    3 最重要的 在象Google Yahoo 和 Live 这样的搜索引擎中提高你网站上网页的搜索相关性 具体来说 URL重写经常能使你在你网站上"&gt;什么是UrlRewrite UrlRewrite 是 将动态页面转换为静态页面的一种技术 例如 您网站...

    UrlRewrite

    URL重写,页面静态化 ~/info_(.[0-9]*)_(.[0-9]*)\.html" destinationUrl="~/default.aspx?typeId=$1&amp;word=$2"/&gt; 正则匹配即可

    分享常见的几种页面静态化的方法

    常说的页面静态化分为两种,一种是伪静态,即url 重写,一种是真静态化。我们以真静态化为主来讲讲

    地址栏的地址重写静态

    将你的 aspx页面 改成html页面 。

    源码-UrlRewriter Java v2.0

    也就是我们常说的Url重写技术,大家熟悉的可能有很多服务器都提供Url重写的技术,以前我们用的最多的就是Apache, Jboss这样一些服务器自带的一些Url重写,但是他们的配置比较麻烦,性能又不是太好,现在我们有专一...

    urlrewriter url重写

    静态页面转换静态页面转换静态页面转换静态页面转换

Global site tag (gtag.js) - Google Analytics