URL重寫

URL重寫(英語:URL Rewriting)是一種REST的相關技術,它可以在Web Server中,針對使用者所提供的URL進行轉換後,再傳入Web Server中的程式處理器。

範例

最常見的用法,就是將一組URL階層字串,轉換成帶有查询字符串(query string)的URL,或是反向轉換,例如: http://www.somebloghost.com/Blogs/Posts.php?Year=2006&Month=12&Day=10

經過URL重寫後,可以變成:

http://www.somebloghost.com/Blogs/2006/12/10/

另一個例子,下面的URL:

http://www.somehost.com/Blogs/2006/12/

經過URL重寫後,可轉換成:

http://www.somehost.com/Blogs.aspx?year=2006&month=12

因此,使用者可以使用較直覺的方式來輸入URL(這也是REST的主要目的),是搜尋引擎最佳化(SEO)的作法之一。而應用程式開發者可以利用這個機制來將參數隱藏起來,可避免讓網路上的惡意使用者收集到有利於發動攻擊的資訊。

支援URL Rewriting的處理引擎

Apache HTTP Server

  • mod_rewrite (页面存档备份,存于互联网档案馆),Apache官方的URL Rewriting模組
  • mod_alias(页面存档备份,存于互联网档案馆),Apache 1.3的URL別名模組

Microsoft Internet Information Server (IIS)

  • URL Rewrite Module for IIS 7.0,由微軟官方發展
  • IIS Mod-Rewrite。
  • IISRewrite。
  • ISAPI_Rewrite (页面存档备份,存于互联网档案馆)。
  • URL Replacer (页面存档备份,存于互联网档案馆)。
  • Ionic's ISAPI Rewrite Filter (IIRF),無須 .NET,免費的開放原始碼元件。
  • .NET URL Rewriter and Reverse Proxy,免費的 URL Rewriting 與反向代理元件,支援 .NET 2.0/3.5,IIS 6.0/7.0。
  • VirtualUrl.NET。
  • UrlRewriter.NET (页面存档备份,存于互联网档案馆),免費的開放原始碼元件,支援.NET 1.1/2.0。
  • URLRewriting.NET,免費的開放原始碼元件,ASP.NET 2.0適用。
  • VirtualUrl.NET for ASP.NET 2。

J2EE Servlet

  • HttpRedirectFilter (页面存档备份,存于互联网档案馆)(開放原始碼)。
  • UrlRewriteFilter (页面存档备份,存于互联网档案馆)(開放原始碼-BSD)。

Lighttpd (lighty)

  • mod_rewrite (页面存档备份,存于互联网档案馆)(lighttpd是一套開放原始碼的網頁伺服器)。

Nginx

參考資料

參见

外部連結

  • ASP.NET: URL Rewriting (页面存档备份,存于互联网档案馆
  • apache mod_rewrite - URL Rewriting
  • Java Servlet: URL Rewriting (页面存档备份,存于互联网档案馆
網頁技術與標準
文档呈现语言
样式格式描述语言
动态网页技术
用戶端互動技术
用戶端手稿語言
标识定位语言
文档纲要语言
* 代表由W3C制定和维护的标准与规范