在 ASP.NET 應用程式開發中,URL 重寫是提升網站可用性與 SEO 表現的關鍵技術。透過將複雜的動態 URL 轉換為簡潔、語意化的靜態風格路徑,能帶來三大核心優勢:
URLRewriter.dll 是早期 ASP.NET 專案常用的輕量級重寫元件,設定簡單,透過 web.config 定義規則即可運作。
<configuration>
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<RewriterConfig>
<Rules>
<!-- 範例:將 ~/d{id}.html 重寫至 ~/default.aspx?id={id} -->
<RewriterRule>
<LookFor>~/d(\d+)\.html</LookFor>
<SendTo>~/default.aspx?id=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
</configuration>
上述規則使用正則表達式 ~/d(\d+)\.html 捕獲數字 ID,並導向 default.aspx 且帶入查詢字串。瀏覽器顯示 ~/d5.html,伺服器實際處理 ~/default.aspx?id=5。
<system.web>
<httpModules>
<add name="ModuleRewriter" type="URLRewriter.ModuleRewriter, URLRewriter" />
</httpModules>
</system.web>
為使重寫模組能攔截無副檔名或 .html 的靜態路徑請求,需在 IIS 設定通配符應用程式對應:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll完成後,所有請求將先經由 ASP.NET 執行管線,再由 URLRewriter.ModuleRewriter 依規則轉發。
現代 ASP.NET Core / ASP.NET 4.7+ 專案建議改用內建的 URL Rewriting Middleware 或 ASP.NET Routing,功能更強大且無需額外 DLL。但對於維護舊版 Web Forms 專案,URLRewriter.dll 仍是快速落地的可行方案。