刚做完一个项目,因为是一个网站,所以会考虑到seo的东西。因为是用ssh做的,因此这里面就会出现*.action、*.jsp等不利于seo的一些值,所以就用urlrewtire这个插件做了处理,处理的相关内容如下:
1、下载urlrewrite-3.2.0.jar,当然也可以是其他版本,在这里我用的是这个版本。然后放到项目的lib目录下。
2、配置过滤器,在web.xml中添加以下代码:


1. <!-- url 重写 -->  
2.    <filter>  
3. <filter-name>UrlRewriteFilter</filter-name>  
4. <!-- 过滤器类所在的路径: -->  
5. <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>  
6. </filter>  
7.   
8. <filter-mapping>  
9.     <filter-name>UrlRewriteFilter</filter-name>  
10.     <!-- 拦截所有url -->  
11.     <url-pattern>/*</url-pattern>  
12. </filter-mapping>  
13.    <filter>  
14.        <filter-name>struts2</filter-name>  
15. class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>  
16.    </filter>  
17.    <filter-mapping>  
18.        <filter-name>struts2</filter-name>  
19.        <url-pattern>/*</url-pattern>  
20.        <dispatcher>REQUEST</dispatcher>  
21.     <dispatcher>FORWARD</dispatcher>  
22. (有些网站没有加上?)
23.    </filter-mapping>



,这里面尤其要记得修改struts2的过滤器的mapping中的几种dispatcher。因为在没有添加之前url重写无效。
3、添加urlrewrite.xml文件。改文件放在web.xml同一级目录下面。主要内容如下:


1. <!-- 将首页映射为/-->  
2.     <rule>  
3.         <from>/index.html</from>  
4. "forward">queryFontModules.action</to>  
5.     </rule>  
6.     <!-- 将新闻内容映射为/news-contentId-moduleId.html -->  
7.     <rule>  
8. 0-9]+)-([0-9]+).html$</from>  
9. "forward">  
10. 1&moduleId=$2
11.         </to>  
12.     </rule>



。 第一个是没有产数的action映射为html。第二个是有两个参数的action映射为html。这里需要有几个注意的地方:一、多个参数在url中我 们用“&”符号链接,但在这里面如要转义为:“&amp;”;二、原来url中的参数在这里用$1、$2......表示即可,但是顺序 要一致。
4、配置完成时候就可以使用了,例如在浏览器中输入.../index.html这个地址之后,程序会去执行queryFontModules.action这个action,但是地址栏中还是显示.../index.html,这样子就起到了url重写的目的。