共用方式為


使用重寫對應的規則 - 規則範本

作者: Ruslan Yakushev

規則範本可用來為特定案例提供建立一或多個重寫規則的簡單方式。 URL 重寫器模組包含一些常見使用案例的規則範本。 除了該 URL 重寫模組 UI 之外,還提供插入自定義規則範本的架構。 本逐步解說將引導您瞭解如何使用URL重寫模組隨附的「規則與重寫對應」範本。

必要條件

本逐步解說需要下列必要條件:

  1. 已啟用 ASP.NET 角色服務的 IIS 7.0 或更新版本;
  2. 已安裝 URL 重寫模組 Go Live 版本。

設定測試網頁

我們將使用簡單的測試 asp.net 頁面來確認範本所建立的規則正常運作。 測試頁面只會讀取網頁伺服器變數,並在瀏覽器中輸出其值。

複製下列 ASP.NET 程式代碼,並將它 %SystemDrive%\inetpub\wwwroot\ 放在名為 article.aspx 的檔案資料夾中:

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>URL Rewrite Module Test</title>
</head>
<body>
      <h1>URL Rewrite Module Test Page</h1>
      <table>
            <tr>
                  <th>Server Variable</th>
                  <th>Value</th>
            </tr>
            <tr>
                  <td>Original URL: </td>
                  <td><%= Request.ServerVariables["HTTP_X_ORIGINAL_URL"] %></td>
            </tr>
            <tr>
                  <td>Final URL: </td>
                  <td><%= Request.ServerVariables["SCRIPT_NAME"] + "?" + Request.ServerVariables["QUERY_STRING"] %></td>
            </tr>
      </table>
</body>
</html>

複製此檔案之後,請流覽至 http://localhost/article.aspx ,並檢查頁面是否已在瀏覽器中正確轉譯。

U R L 重寫模組測試頁面網頁的螢幕快照。

使用規則範本產生重寫規則

「使用重寫對應規則」範本可用來產生重寫和重新導向規則,這些規則會使用重寫對應來儲存原始要求 URL 與重寫或重新導向 URL 之間的靜態對應。 For more information about usage of rewrite maps refer to "URL Rewrite Module Configuration Reference" and "Using Rewrite Maps in URL Rewrite Module".

若要使用此範本,請遵循下列步驟:

  1. 移至 IIS 管理員

  2. 選取 [預設網站]

  3. 在 [功能檢視] 中,按兩下 [URL 重寫]
    [默認網站首頁] 畫面的螢幕快照,其中已醒目提示 U R L 重寫選項。

  4. 在右側的 [動作] 窗格中,按兩下 [新增規則...]
    [U R L 重寫] 畫面的螢幕快照,其中著重於 [新增規則] 選項。

  5. 在 [新增規則] 對話框中,選取 [使用重寫對應的規則],然後按兩下 [確定]:
    [新增規則] 對話框的螢幕快照,其中已醒目提示 [具有重寫對應] 選項的規則。

  6. 在 [使用重寫對應新增規則] 對話框中,選擇下拉式清單中的 [重寫]。 在 [選擇重寫對應:] 下拉式方塊中,將新的重寫對應名稱指定為 StaticRewrites
    [使用重寫地圖新增規則] 對話框的螢幕快照。

  7. 按一下 [確定]。 這會建立具有指定名稱的重寫對應,以及名稱為 「Rewrite Rule 1 for StaticRewrites」 的重寫規則,以參考該重寫對應。

  8. 按兩下 [確定] 之後,系統會將您帶至頁面,您可以在其中指定重寫對應的對應專案。 按兩下 [新增對應專案...]在右側的 [動作] 窗格中,分別輸入對應專案的原始和新值,分別輸入為 “/article1” 和 “/article.aspx?id=1&title=some-title”。
    [新增對應專案] 對話框的螢幕快照,其中顯示 [原始值] 和 [新增值] 字段。

  9. 重複上一個步驟,以新增兩個以上的對應專案,如下所示:

    原始值: 新值:
    /some-title /article.aspx?id=1&title=some-title
    /post/some-title.html /article.aspx?id=1&title=some-title

完成這些步驟之後,您應該會看到下列在檔案中 C:\inetpub\wwwroot\web.config 建立的重寫對應和重寫規則。

<rewrite>
    <rewriteMaps>
        <rewriteMap name="StaticRewrites">
            <add key="/article1" value="/article.aspx?id=1&amp;title=some-title" />
            <add key="/some-title" value="/article.aspx?id=1&amp;title=some-title" />
            <add key="/post/some-title.html" value="/article.aspx?id=1&amp;title=some-title" />
        </rewriteMap>
    </rewriteMaps>
    <rules>
        <rule name="Rewrite Rule 1 for StaticRewrites" stopProcessing="true">
            <match url=".*" />
            <conditions>
                <add input="{StaticRewrites:{REQUEST_URI}}" pattern="(.+)" />
            </conditions>
            <action type="Rewrite" url="{C:1}" appendQueryString="False"/>
        </rule>
    </rules>
</rewrite>

測試規則

若要測試使用 「StaticRewrites」 對應產生的重寫規則,請開啟網頁瀏覽器並要求下列任何 URL:

http://localhost/article1
http://localhost/some-title
http://localhost/post/some-title.html

上述任何一個 URL 都應該根據重寫對應中定義的對應來重寫 URL。 您的結果看起來應該像下列頁面:

顯示原始U R L和最終U R L 欄位的U R L 重寫模組測試頁面螢幕快照。

摘要

在本逐步解說中,您已瞭解如何使用URL重寫模組隨附的「規則與重寫對應」範本,以重寫對應產生重寫規則。 此規則範本可用來建立規則和佔位元對應,其中包含 Web 應用程式的大量靜態重寫和重新導向對應。