共用方式為


使用者易記 URL - 規則範本

由 IIS 小組

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

必要條件

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

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

設定測試網頁

我們將使用簡單的測試 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>
            <tr>
                <td>Public Link: </td>
                <td><a href="<%= Request.ServerVariables["SCRIPT_NAME"] %>?<%= Request.ServerVariables["QUERY_STRING"] %>">Link URL</a></td>
            </tr>
        </table>
    </body>
</html>

複製此檔案之後,請流覽至 http://localhost/article.aspx ,並檢查頁面是否已在瀏覽器中正確轉譯。
瀏覽器畫面的螢幕擷取畫面,其中顯示 U R L 重寫模組測試頁面。

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

「使用者易記 URL」規則範本可用來產生重寫、重新導向和輸出規則,讓動態 Web 應用程式的 URL 更方便使用者和搜尋引擎使用。 一般而言,動態網頁會在產生輸出 HTML 時,將查詢字串參數納入考慮。 具有查詢字串的 URL (例如 http://contoso.com/articles.aspx?year=2008&month=11 ,) 並不容易讓人類使用和通訊, (例如 http://contolso.com/articles/2008/11) 。 此外,某些搜尋引擎編目程式可能會在編制網站頁面索引時忽略查詢字串。 規則範本可協助您產生重寫規則,以使用查詢字串將階層型 URL 轉換成 URL。 templace 也可以選擇性地產生重新導向規則,以用來將 Web 用戶端表單 URL 重新導向至查詢字串以清除 URL。 最後,您可以建立輸出重寫規則,以 HTML 回應中查詢字串取代所有出現的 URL,並將其階層式 URL 對等專案取代。

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

  1. 移至 IIS 管理員
  2. 選取 [預設網站]
  3. 在 [功能檢視] 中,按一下 [URL 重寫]
    [預設網站] 畫面上 [I I S 管理員] 視窗的螢幕擷取畫面。U R L 重寫的圖示會反白顯示。
  4. 在右側的 [動作] 窗格中,按一下 [新增規則...],然後選取 [使用者易記 URL] 範本:
    [新增規則] 對話方塊的螢幕擷取畫面。醒目提示使用者易記 U R L 的圖示。
  5. 在 [新增規則以啟用使用者易記 URL] 對話方塊中,輸入具有查詢字串參數的 URL 範例: http://localhost/article.aspx?id=123&title=some-title ,然後使用建議的選項展開下拉式清單,以瞭解如何將該範例 URL 轉換成不含查詢字串的 URL。
    [新增規則以啟用User-Friendly U R L] 對話方塊的螢幕擷取畫面。
  6. 選擇第二個選項: http://localhost/article/123/some-title 。 請注意,URL 模式和替代 URL 已據以更新。 這些會用於規則範本將建立的重寫規則中。 檢查 「建立對應的重新導向規則」,以建立將在 Web 用戶端使用內部 URL 要求網頁時使用的重新導向規則。 這些用戶端會重新導向至對應的公用 URL。
    此外,請檢查 [建立對應的輸出重寫規則] 來建立輸出規則,以將其公用對等專案取代回應 HTML 中所有內部 URL 實例。
    [新增規則以啟用User-Friendly U R L] 對話方塊的螢幕擷取畫面。對應的公用 U R L 欄位會反白顯示。
  7. 按一下 [確定],以便產生重寫、重新導向和輸出規則:
    顯示 [U R L 重寫] 頁面的 [I S 管理員視窗] 螢幕擷取畫面。會顯示輸入和輸出規則。

測試規則

若要測試產生的規則,請開啟網頁瀏覽器並要求下列 URL:

http://localhost/article/234/some-title

您應該會看到網頁伺服器上的重寫規則已將原始 URL 變更為 article.aspx,並傳遞 「234」 和 「some-title」 作為查詢字串參數的值。

在 Web Broser 中,將滑鼠移至 [連結 URL] 文字 (或使用功能表 「Page」 - > 「View Source...」) 。 請注意,即使連結的 URL 原本是使用查詢字串參數的格式,但 URL 重寫模組已取代為使用階層式 URL 格式。

瀏覽器視窗的螢幕擷取畫面,其中顯示 U R L 重寫模組測試頁面。重新導向的 U R L 會圓圈。

此外,如果您要求 http://localhost/article.aspx?id=432&title=some-other-title ,您會看到瀏覽器重新導向至 http://localhost/article/432/some-other-title

總結

在本逐步解說中,您已瞭解如何使用 URL 重寫模組中包含的「使用者易記 URL」規則範本來產生重寫規則。 此規則範本可用來做為設計重寫規則的起點,讓您能夠使用現有 Web 應用程式的使用者易記和搜尋引擎易記 URL。