1.什么是伪静态
伪静态就是考虑搜索引擎优化SEO,将动态网页通过服务器处理成静态页面,如www.xxx.com/jk/fd.php?=12这样的动态网页处理成www.xxx.com/jk-fd-12.html这样格式静态页面,常见的论坛帖子页面,都是经过伪静态处理成静态页面格式html页面。
其实表面上看起来是静态的页面,但是本质上只是做了一些页面跳转和访问的url地址的变化,为了增加安全性。
2.伪静态的配置
伪静态中在xml中配置的都是用正则表达式来表示的,所以首先我们先了解一下正则的几个基本的用法。
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束 abc$ 表示希望匹配的字符串以abc结尾
[] 用来表示一个字符的集合
() 表示一个被获取的匹配
+ 表示一个字符重复至少一次
工作原理:
它就是一个简单的过滤器(Filter),是通过我们在jsp中常用的两个方法实现的forword和sendRedirect()
使用流程:
(1) 下载urlrewrite-2.6.0 或更高版本的,现在的最高版本是4.0.3 (urlrewrite-3.1.0.jar)
(2) 在WEB-INF目录下建一个urlrewrite.xml,用于配置在页面跳转时的,他的主要结构为:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
"http://tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite>
<rule>
<from></from>
<to></to>
</rule>
</urlrewrite>
在实际应用中,也许我们会在传page的时候用到,比如
<rule>
<from>^/(\d+)\.html$</from>
<to type="forward">/practice/index-$1.jsp</to>
</rule>
其中$1表示第一个参数,$2表示第二个参数 ,$3表示第三个参数
^/(\w+)/(\w+)/page_(\d+)\.html$是正则表达式的表示,我们在上面已经讲的很清楚了,可以参照着看一下,相信你会明白的。
(3)第三步就是在web.xml中初始化
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样我们就配置好了伪静态。
注:
SEO是搜索引擎优化(Search Engine Optimization)
SEO是为了从搜索引擎中获得更多的免费流量,从网站结构、内容建设方案、用户互动传播等角度进行合理规划,使网站更适合搜素引擎的检索原则的行为。
SEO可以帮你将网站中的高质量内容更好的呈现给搜索引擎,获取更多流量,但没有人可以保证你的网站排在第一位。
<rule>
<from>^/practice/index-a([1-9]+)-([a-z]+).html$</from>
<to type="forward">/practice/index.jsp</to>
</rule>
以上这种是指定2个参数的传参
如果传值是不确定的那么
<rule>
<from>^/m</from>
<to type="forward">/manage.jsp</to>
</rule>
就可以了