1)可用的一些系統變數,在重寫條件和重寫規則裡都可以使用,格式為 %
使用示例:
ps:具體每個變數是什麼意思就不說了,看變數名一般也知道是什麼意思,實在不知道就自己再查吧
2)引數變數(只列出常用的幾個,其他的請看 這裡)
-d 是否乙個目錄
-f 是否乙個檔案
-u 是否一條有效的鏈結
這個比較常用來做偽靜態時,判斷訪問鏈結是否乙個真實目錄或乙個真實檔案,不對它們進行重寫(!是不等於的意思)
rewriteengine onrewritecond % !-d
rewritecond % !-f
rewriterule ^(.*)$ index.php?s=/$1 [qsa,pt,l]
3)比較運算子(用於重寫條件 rewritecond)
字串比較
= 等於
< 小於
> 大於
<= 小於等於
>= 大於等於
整數比較
-eq 等於(equal)
-ge 大於等於(greater or equal)
-gt 大於(greater than)
-le 小於等於(less or equal)
-lt 小於(less than)
-ne 不等於(not equal)
4)rewritebase 重寫的根目錄
這樣的話,是不是會很煩??這時候你就可以用rewritebase了
5)rewriterule 後面的標識(flags)(同時只列出幾個常用的,其他的請看 這裡)
[qsa] 保留未重寫之前的鏈結的查詢引數
rewriterule "/pages/(.+)" "/page.php?page=$1"[qsa]使用 [qsa] 標識, 乙個類似 /pages/123?one=two 這樣的請求,會被重寫成 /page.php?page=123&one=two 這樣,如果沒有 [qsa] 標識, 一樣的請求,將會被重寫成 /page.php?page=123
[pt] 使用這個標識,會讓系統遇到一些以pathinfo格式分隔的url,不當成乙個目錄路徑來處理
例如:/home/article/detail/id/1.html預設地,url用/分隔的,是會被認為是目錄來處理的(home目錄下的article目錄下的detail目錄下的id目錄下的1.html檔案)
使用[pt]標識,就是告訴系統,這就是條字串,不是目錄,不要去找目錄
[l] 匹配的最後一條規則,意思就是如果匹配了這一條規則,就不用比較這一條規則後的規則是否匹配了,直接停掉就可以了
[nc] 匹配時忽略大小寫
[r] 重定向,url防盜煉或301跳轉等等會用到
ps:重定向時,想發出什麼請求頭,就用r=狀態碼就可以了例如301重定向就是這樣寫的:[r=301,l]
6)正則怎麼寫?
1、正則部分是不需要處理網域名稱也處理不到網域名稱的,重寫從根目錄(/)開始
#錯誤的rewriterule htt:\/\/www\.abc\.com\/index\.html http:\/\/www\.abc\.com\/index\.php [nc,l]
#這個也是錯誤的
rewriterule (.*)\/index\.html $1\/index\.php [nc,l]
#正確的
rewriterule index\.html index\.php [nc,l]
2、^和$
^和$是匹配開頭和結束的,不限制開頭和結束時,相當於模糊匹配
#但下面這樣是不行的,鏈結還有網域名稱路徑和檔名呢,直接.jpg這樣肯定是匹配不上的
#下面這樣是這是可以的
$1 $2 這些點位符是替換首頁正則式匹配上的內容的,乙個括號()乙個組
rewriterule ^/article/(\d+)/(\d+)\.html$ index\.php/article/index/cat_id/$1/id/$2 [nc,l]
前面兩個(\d+)組,後面用$1 $2代替,再加乙個組,就用$3代替,以此類推~
暫時就這樣吧,完。
使用 URLRewrite 重寫URL
1 測試環境 web inf 下,注意不要修改urlrewrite.xml檔名。2 修改web.xml 在web.xml中增加filter配置 其中 是定製的規則,是顯示的url,是真正請求的url。type forward 位址列顯示from部分 靜態化url type redirect 位址列顯...
URLRewrite實現偽靜態 url重寫
urlrewritefilter org.tuckey.web.filters.urlrewrite.urlrewritefilter 4.修改urlrewrite.xml a z world.jsp?id 1 world world.jsp?tid 1 html test1 1.jsp the o...
URLRewrite實現URL位址偽靜態化
1使用urlrewrite實現url位址偽靜態化1.1urlrewirte的用處 1.滿足搜尋引擎的要求。2.隱藏技術實現,提高 的移植性。3.滿足美感的要求 個人感覺這個用處太牽強 1.2專案部署 3.把urlrewrite.xml複製到專案的webroot web inf 目錄下 4.在web....