首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

ASP.NET URL 重寫:優勢解析與 URLRewriter.dll 實作指南

     編輯:ASP.NET 基礎

為什麼需要 URL 重寫?

在 ASP.NET 應用程式開發中,URL 重寫是提升網站可用性與 SEO 表現的關鍵技術。透過將複雜的動態 URL 轉換為簡潔、語意化的靜態風格路徑,能帶來三大核心優勢:

  • 搜尋引擎最佳化(SEO):靜態化的 HTML 格式 URL 更易被搜尋引擎爬蟲檢索與收錄,權重最高,有助於提升自然搜尋排名。
  • 使用者體驗優化:簡短、可讀性高的 URL 方便使用者記憶、分享與手動輸入,降低認知負荷。
  • 資訊安全與架構隱藏:遮蔽實體檔案路徑與後端技術棧(如 .aspx 副檔名、查詢字串參數),減少攻擊面,增加系統安全性。

使用 URLRewriter.dll 實作 URL 重寫

URLRewriter.dll 是早期 ASP.NET 專案常用的輕量級重寫元件,設定簡單,透過 web.config 定義規則即可運作。

步驟 1:於 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。

步驟 2:註冊 HTTP 模組

<system.web>
  <httpModules>
    <add name="ModuleRewriter" type="URLRewriter.ModuleRewriter, URLRewriter" />
  </httpModules>
</system.web>

IIS 6.0 (Windows Server 2003) 通配符對應設定

為使重寫模組能攔截無副檔名或 .html 的靜態路徑請求,需在 IIS 設定通配符應用程式對應:

  1. 開啟網站屬性 → 目錄 → 設定 → 映射
  2. 新增通配符應用程式映射,可執行檔指向:
    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
  3. 取消勾選「確認檔案是否存在」

完成後,所有請求將先經由 ASP.NET 執行管線,再由 URLRewriter.ModuleRewriter 依規則轉發。

補充說明

現代 ASP.NET Core / ASP.NET 4.7+ 專案建議改用內建的 URL Rewriting Middleware 或 ASP.NET Routing,功能更強大且無需額外 DLL。但對於維護舊版 Web Forms 專案,URLRewriter.dll 仍是快速落地的可行方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved