Nemo

Nemo 关注TA

路漫漫其修远兮,吾将上下而求索。

Nemo

Nemo

关注TA

路漫漫其修远兮,吾将上下而求索。

  •  普罗旺斯
  • 负责帅就完事了
  • 写了1,495,102字

该文章投稿至Nemo社区   Java  板块 复制链接


java urlrewrite简单配置实现伪静态

发布于 2017/09/26 17:25 2,433浏览 0回复 2,235

考虑使用urlrewrite的原因有两个:一是美化地址栏隐藏原有的真实地址,二是实现伪静态化有利于搜索引擎收录。

举个栗子:

Link-Nemo的首页的某个文章的地址为:

https://www.link-nemo.com/Kira/article/detail.do?a=pk3vcxFntjIwcKPEpbn

使用urlrewrite之后,访问地址可以是:

https://www.link-nemo.com/Kira/article/pk3vcxFntjIwcKPEpbn.html



具体实现:

在maven中添加依赖

<dependency>
<groupId>org.tuckey</groupId>
<artifactId>urlrewritefilter</artifactId>
<version>3.1.0</version>
</dependency>


而后在web.xml中配置拦截器拦截:

<!-- 加到任何servlet映射的顶部,不然可能有些路径不能被过滤到
http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/index.html
-->
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<!--
设备文件重加载间隔 (0默示随时加载, -1默示不重加载, 默认-1)
-->
<init-param>
<param-name>confReloadCheckInterval</param-name>
<param-value>60</param-value>
</init-param>

<!-- 自定义配置文件的路径,是相对context的路径,(默认位置 /WEB-INF/urlrewrite.xml) -->
<init-param>
<param-name>confPath</param-name>
<param-value>/WEB-INF/urlrewrite.xml</param-value>
</init-param>

<!--
设置日志级别(将被记录到日志中)
可以为: TRACE, DEBUG, INFO (default), WARN, ERROR, FATAL, log4j, commons, slf4j,
比如 sysout:DEBUG(设置到控制台调试输出级别)
(默认级别 WARN) -->
<init-param>
<param-name>logLevel</param-name>
<param-value>DEBUG</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>

最后还需要一个配置,在WEB-INF/下新建urlrewrite.xml文件,在其中写上转发规则,这里可以添加多个规则,方便起见,先写上一个做测试:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE urlrewrite
PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
"http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">

<urlrewrite>
<rule>
<from>/page/(.*).html</from>
<to>/page.do?id=$1</to>
</rule>

</urlrewrite>

大体也就是这样了。

最后的结果是:

当访问/page/1.html的时候,实际请求会被转发到page.do?id=1

至此站点的伪静态就算做完了。




点赞(0)
点了个评