urlwrite静态化技术

网站伪静态

1. 官方网址

http://tuckey.org/urlrewrite/

2. 目的

1). 满足搜索引擎的要求 

某些搜索引擎不能支持动态页面的抓取,大量的信息就不能被潜在用户搜索到。用UrlRewrite技术你可以把 http://server/news.asp?id=111 变成 http://server/news/111.htm 这样他们就会被搜索引擎收录了。google虽然可以抓取动态页面,但是google对动态页面的评分一般低于静态页面。所以,对大量信息发布的网站,把网站地址改变成静态的绝对是值得的。这条应该是最有说服力的理由了.

 

3). 隐藏技术实现,提高网站的移植性 

每个页面都挂着鲜明的.asp/.jsp这种开发语言的标记,可以一眼让人看出你的网站使用什么语言做的。而且在改变网站的语言的时候,你需要改动大量的链接。而且,一个页面修改了扩展名,他的pagerank也会随之消失,从头开始。我们可以用UrlRewrite技术隐藏我们的实现细节,这样修改移植都很方便,而且完全不损失pagerank。这条好象显得有点高深.

 

3). 满足美感的要求 

对于追求完美主义的网站设计师,即使是网页的地址也要看起来简洁明快。形如 http://server/news.asp?channel=3&id=111 的网页地址,肯定是上不了完美主义者的法眼的,用UrlRewrite技术,你可以把他变成 http://server/news/3/111.htm 。 这条在我看来是可有可无的.

3. 项目布署

1.首先在http://tuckey.org/urlrewrite/下载urlrewirtefilter,现在有4.0版本。

2.解压所下载的文件,把urlrewritefilter-4.0.3.jar复制到项目的WebRoot/WEB-INF/lib/目录下,然后编译。

3.把urlrewrite.xml复制到项目的WebRoot/WEB-INF/目录下

4.在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>WARN</param-value>

   </init-param>

 </filter>

 

<filter-mapping>

   <filter-name>UrlRewriteFilter</filter-name>

   <url-pattern>/*</url-pattern>

</filter-mapping>

 

 

4. 如何实现静态化

到这里相关的配置已经完成,下面看如何把动态地址静态化:

(1)普通url静态化

例如:要把http://localhost/index.action

转换为     http://localhost/index.html

这种是最简单的,当一个servlet跳转到list.jsp页面列出user列表时,在urlrewrite.xml中这样配置:

<rule>

        <from>/index.html</from>

        <to>/index.action</to>

    </rule>

(2)带参数的url静态化

例如:要把http://localhost/soc/qbn.action?s=23

转换成     http://localhost/soc/qbn/23.html

在urlrewrite.xml中这样配置:

单个参数:

<rule>

        <from>^/soc/qbn/([0-9]+).html$</from>

        <to>/soc/qbn.action?s=$1</to>

    </rule>

多参数:

<rule>

        <from>^/soc/qbn/([0-9]+)_([0-9]+).html$</from>

        <to>/soc/qbn.action?s=$1&c=$2</to>

    </rule>

 

 

5. 注意事项

静态化配置信息一定要放在struts2拦截器前边;

 

<!--EndFragment-->

你可能感兴趣的:(write)