我们知道,大部分搜索引擎都会优先考虑收录静态的HTML页面,故而互联网上的大部分动态网站都会考虑使用伪静态方法把动态URL伪装成静态的HTML页面;

那怎么实现呢?对于Java Web应用来说,要实现伪静态非常简单,可以通过Filter拦截所有发向*.html请求,然后按某种规则将请求forward到实际的*.jsp页面即可;可以使用URL Rewrite实现哦;

好,言归正传,现在来解决:如何使用URL Rewrite实现网站伪静态?

(1)、下载
 登录http://www.tuckey.org/urlrewrite/,下载最新版本或3.2版本(urlrewritefilter-3.2.0-src.zip);
 (2)、解压
 包含:api、lib、manual、src、webapp文件夹以及LICENSE.txt等杂项文档;
 (3)、web.xml配置

<!-- 配置Url Rewrite的Filter -->
  <filter>
   <filter-name>UrlRewriteFilter</filter-name>
   <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
  </filter>
  <!-- 配置Url Rewrite的Filter拦截所有请求 -->
  <filter-mapping>
   <filter-name>UrlRewriteFilter</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>


 (4)、urlrewrite.xml配置(在应用的WEB-INF路径下增加)
 说明:urlrewrite.xml定义伪静态映射规则;

<?xml version="1.0" encoding="GBK"?>
  <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
"http://tuckey.org/res/dtds/urlrewrite3.2.dtd">
  <urlrewrite>
   <rule>
   <!-- 所有匹配如下正则表达式的请求 -->
   <from>/userinf-(\w*).html</from>
   <!-- 将被forward到如下JSP页面,其中$1代表上面第一个正则表达式所匹配的字符串 -->
   <to type="forward">/userinf.jsp?username=$1</to>
   </rule>
  </urlrewrite>


 规则:所有发向/userinf-(\w*).html的请求都将被forward到userinf.jsp页面,并将(\w*)正则表达式所匹配的内容作为username参数值;


特别说明:如果能帮助到您,请您留下点滴痕迹,让我知道我的存在是有意义的;如果不能帮助到您,请接受我的歉意;