現在很多**都會使用這樣的技術,就是url重寫,究竟有什麼用呢?網上很多人都說便於搜尋引擎收錄,這一點我buy,畢竟不是所有的搜尋引擎都會提高動態頁面的權。而且這樣的url比較短,便於收錄那是肯定的。再者可以隱藏實現技術,當然這個只是對於普通的菜鳥才會有效,要想知道你的實現技術太容易了。當然知道了也沒什麼大不了的。只要腰桿直,咱也不怕你來挑釁。
電影好了,開始說說怎麼使用吧,也就是helloworld啦。實際上會個helloworld就差不多了。
拷貝urlrewrite-3.2.0.jar到web的lib目錄下,urlrewrite.xml檔案拷貝到web-inf目錄下。拷貝以下這段**到你的web.xml檔案裡面,就是配置乙個filter,在servlet3.0,你可以選擇直接繼承該類,加個註解,也是可以的。具體怎麼做上網去查怎麼建立乙個filter吧。
urlrewritefilter org.tuckey.web.filters.urlrewrite.urlrewritefilter
forward
urlrewrite.xml基本格式如下
<?xml version="1.0" encoding="utf-8"?>
/a_([0-9]*)
/a.action?id=$1
這樣就是配置就乙個url,如:/a_1,實際上訪問的是/a.action?id=1
如果是多個引數,那又該怎麼配呢?
原始碼包給出的例子如下:
eg 1:
/a/([0-9]*)/([0-9]*)
/a.action?id=$1&typeid=$2
eg 2:
/a-([0-9]*)-([0-9]*)
/a.action?id=$1&typeid=$2
這些明顯不能滿足我們的需求,不知道網友有沒有遇到跟我一樣的情況,就是想配成如下這個樣子:
/a_id_0_type_1,配置如下:
/a_id_([0-9]*)_type_([0-9]*)
/a.action?id=$1&typeid=$2
執行的時候,會發現報404錯誤,按照正常來說,應該是沒有問題的呀,但就是有問題,怎麼辦呢?當時我也是用的很急,也就沒想過這麼多了,就直接用人家的。
想想難道這是人家已經規定好只能是'/','-'才能作為分割符嗎?這個不是正規表示式嗎?分組應該是沒有問題的呀。我開始想到的解決方法是在'_'前面加乙個'\'字元,也就是如下配置啦:
/a_id_([0-9]*)\_type_([0-9]*)
/a.action?id=$1&typeid=$2
還別說,行了。哈哈,想不到吧,'_'要轉義才行。這也太神奇了吧。
後來我又試了另外一種方法,也就是在括號外面再加多乙個括號。配置如下:
/a_id_(([0-9]*))_type_(([0-9]*))
/a.action?id=$1&typeid=$2
行了。加什麼字元**義字元另說)都可以了。
先寫到這裡。待續。
web中,url rewrite的配置
優點 掩藏真實的url以及url中可能暴露的引數,以及隱藏web使用的程式語言,提高安全性 便於搜尋引擎收錄 缺點 降低效率,影響效能。如果專案是內網使用,比如公司內部軟體,則沒有必要配置。將http localhost 8080 atfc pict getuserlist 偽裝成http loca...
urlrewrite使用案例
urlrewrite字面意思為重寫路徑,可以改變瀏覽器中我們看得到的 url路徑,而且有得於搜尋引擎抓取,form表單 ajax都不利於搜尋引擎抓取。1 我用的是目前最新的版本4.0.4 org.tuckey urlrewritefilter 4.0.4 2 在web.xml中配置乙個過濾器,用來過...
使用 URLRewrite 重寫URL
1 測試環境 web inf 下,注意不要修改urlrewrite.xml檔名。2 修改web.xml 在web.xml中增加filter配置 其中 是定製的規則,是顯示的url,是真正請求的url。type forward 位址列顯示from部分 靜態化url type redirect 位址列顯...