URL重寫

URL重寫（）是一種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

參考資料

參见 

 REST
 URL
 J2EE
 ASP.NET
縮址

外部連結 
 ASP.NET: URL Rewriting 
 apache mod_rewrite - URL Rewriting
 Java Servlet: URL Rewriting 

網頁技術