網頁設計技術~asp改寫副檔名

IIS的ISAPI伺服器擴展URL REWRITE(URL重寫)簡介

來源:http://www.zuoyefeng.com/show.aspx?id=79&cid=70

URL REWRITE,我的翻譯是URL重寫,或者URL重定義。在asp+iis的網站開發模式中,可以實現如將http://xxxxxx.cn/news.asp?id=220 變成http://xxxxxx.cn/220.html 的形式。例如某條新聞的實際網址是http://xxxxxx.cn/news.asp?id=220 ,通過URL重寫之後,我們就可以直接輸入 http://xxxxxx.cn/220.html 的網址,來訪問該條新聞。

對於iis伺服器,要實現此項功能,需從 http://www.helicontech.com/download/ 網站上,下載Lite Version (free)免費版的軟體,將此軟體安裝於伺服器之後,在其安裝目錄上,找到配置文件httpd.ini,用記事本打開,輸入相應的規則。然後,在相應的站點上,ISAPI中,添加此元件。OK,配置完成,功能生效。

2、URL_REWRITE的規則寫法參考:

當我需要將將news.asp?id=234的映射成news/234.html時,只需設置:

RewriteRule /news/(\d+)\.html /news\.asp\?id=$1 [N,I]

這樣就把 /news/234.html 這樣的請求映射成了 /news.asp?id=234
當有對/news/234.html的請求時:web伺服器會把實際請求轉發給/news.asp?id=234

比對於某一個簡單應用可以是:

RewriteRule /news/(\d+)\.html /news/news\.php\?id=$1 [N,I]
這樣就把 http://www.xxxxxx.com/news/234.html 映射到了 http://www.xxxxxx.com/news/news.php?id=234

一個更通用的能夠將所有的動態頁面進行參數映射的表達式是:
把 http://www.xxxxxx.cn/foo.php?a=A&b=B&c=C
表現成 http://www.xxxxxx.cn/foo.php/a/A/b/B/c/C

RewriteRule (.*?\.php)(\?[^/]*)?/([^/]*)/([^/]*)(.+?)? $1(?2$2&:\?)$3=$4?5$5: [N,I]

3、使用URL重寫功能的好處:

首先,有助於增加網站的安全性,因為它隱藏了諸如asp php jsp等相關的伺服器技術,以最原始的html文件形式,呈現於客戶。

其次,在平台移植時,不會各頁面的網站。如將news.asp?id=123轉移news.php?id=123,即將asp平台轉移php,如使用此URL重寫,這個頁面的網址就是news/123.html。

其它方面,方便URL引用,有助於搜索引擎的枚舉。

ISAPI_rewrite中文手冊
http://www.isapirewrite.cn/docs/

其他相關URL重寫擴展產品
ABC_Rewrite
http://www.jrsw.com/iis/index.html

紫雨軒IIS URL 重寫元件
http://www.redcheek.net/blogview.asp?logID=110