使用者易記 URL - 規則範本
由 IIS 小組
規則範本可用來為特定案例建立一或多個重寫規則的簡單方式。 URL 重寫器模組包含一些常見使用案例的規則範本。 除了該 URL 重寫模組 UI 之外,還提供插入自訂規則範本的架構。 本逐步解說將引導您瞭解如何使用 URL 重寫模組隨附的「使用者易記 URL」規則範本。
必要條件
本逐步解說需要下列必要條件:
- 已啟用 ASP.NET 角色服務的 IIS 7.0 或更新版本;
- 已安裝 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
,並檢查頁面是否已在瀏覽器中正確轉譯。
使用規則範本產生重寫規則
「使用者易記 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 對等專案取代。
若要使用範本,請遵循下列步驟:
- 移至 IIS 管理員
- 選取 [預設網站]
- 在 [功能檢視] 中,按一下 [URL 重寫]
- 在右側的 [動作] 窗格中,按一下 [新增規則...],然後選取 [使用者易記 URL] 範本:
- 在 [新增規則以啟用使用者易記 URL] 對話方塊中,輸入具有查詢字串參數的 URL 範例:
http://localhost/article.aspx?id=123&title=some-title
,然後使用建議的選項展開下拉式清單,以瞭解如何將該範例 URL 轉換成不含查詢字串的 URL。
- 選擇第二個選項:
http://localhost/article/123/some-title
。 請注意,URL 模式和替代 URL 已據以更新。 這些會用於規則範本將建立的重寫規則中。 檢查 「建立對應的重新導向規則」,以建立將在 Web 用戶端使用內部 URL 要求網頁時使用的重新導向規則。 這些用戶端會重新導向至對應的公用 URL。
此外,請檢查 [建立對應的輸出重寫規則] 來建立輸出規則,以將其公用對等專案取代回應 HTML 中所有內部 URL 實例。
- 按一下 [確定],以便產生重寫、重新導向和輸出規則:
測試規則
若要測試產生的規則,請開啟網頁瀏覽器並要求下列 URL:
http://localhost/article/234/some-title
您應該會看到網頁伺服器上的重寫規則已將原始 URL 變更為 article.aspx,並傳遞 「234」 和 「some-title」 作為查詢字串參數的值。
在 Web Broser 中,將滑鼠移至 [連結 URL] 文字 (或使用功能表 「Page」 - > 「View Source...」) 。 請注意,即使連結的 URL 原本是使用查詢字串參數的格式,但 URL 重寫模組已取代為使用階層式 URL 格式。
此外,如果您要求 http://localhost/article.aspx?id=432&title=some-other-title
,您會看到瀏覽器重新導向至 http://localhost/article/432/some-other-title
。
總結
在本逐步解說中,您已瞭解如何使用 URL 重寫模組中包含的「使用者易記 URL」規則範本來產生重寫規則。 此規則範本可用來做為設計重寫規則的起點,讓您能夠使用現有 Web 應用程式的使用者易記和搜尋引擎易記 URL。