偽靜態的介紹和配置
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>
就可以了