"User Friendly URL" ルール テンプレート

作成者 : Ruslan Yakushev
発行日 : 2008 年 8 月 29 日 (作業者 : iisteam (英語))
更新日 : 2008 年 11 月 10 日 (作業者 : iisteam (英語))

前提条件

このチュートリアルは、以下を前提としています。

  1. IIS 7.0 で ASP.NET 役割サービスが有効化されている。
  2. URL の書き換えモジュールの Go Live リリースがインストールされている。

テスト Web ページの設定

簡単なテスト用 asp.net ページを使用して、テンプレートによって作成されたルールが正しく機能することを確認します。このテスト用ページは、Web サーバー変数を読み取り、その値をブラウザーに出力します。

次の 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>
<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>

このファイルをコピーした後で、https://localhost/article.aspx を参照して、ページがブラウザーに正しくレンダリングされることを確認します。

ルール テンプレートを使用して書き換えルールを生成する

"User Friendly URL" ルール テンプレートを使用して、動的 Web アプリケーションの URL をユーザーおよび検索エンジンが使いやすいようにする、書き換えおよびリダイレクトのルールを生成できます。通常、動的 Web ページで出力 HTML が生成されるときには、クエリ文字列パラメーターが考慮されます。クエリ文字列を含む URL (たとえば https://contoso.com/articles.aspx?year=2008\&month=11) は、階層ベースの簡単な URL (たとえば http://contolso.com/articles/2008/11) と比較して、使ったり伝えたりするのに手間がかかります。さらに、検索エンジン クローラーによっては、Web サイト ページのインデックス作成時にクエリ文字列が無視される場合もあります。ルール テンプレートは、階層ベースの URL をクエリ文字列を含む URL に変換する書き換えルールを生成するのに役立ちます。また、オプションで、クエリ文字列を含む URL からクリーン URL に Web クライアントをリダイレクトするリダイレクト ルールも生成できます。

テンプレートを使用するには、次の手順を使用します。

  1. IIS マネージャーに移動します。
  2. [Default Web Site] を選択します。
  3. 機能ビューで [URL Rewrite] をダブルクリックします。
    Dd939098.ima2_rewrite(ja-jp,TechNet.10).gif
  4. 右側の [操作] ウィンドウで、[Add rules] をクリックします。
    Dd939098.ima3_addrules(ja-jp,TechNet.10).gif
  5. [Add Rules] ダイアログで、[User Friendly URL] を選択して、[OK] をクリックします。
    Dd939098.ima4_userfriendly(ja-jp,TechNet.10).gif
  6. [Add rules to enable user friendly URLs] ダイアログで、クエリ文字列パラメーターを含む URL の例「https://localhost/article.aspx?id=123&title=some-title」を入力します。次に、ドロップ ダウン リストを展開すると、このサンプル URL をクエリ文字列を含まない URL に変換する方法のオプションが表示されます。
    Dd939098.ima5_query(ja-jp,TechNet.10).gif
  7. 2 番目のオプション、https://localhost/article/123/some-title を選択します。[URL pattern] および [Substitution URL] も更新されます。これらは、ルール テンプレートによって作成される書き換えルールで使用されます。また、Web クライアントが内部 URL を使用して Web ページを要求した場合に使用されるリダイレクト ルールを作成するには、[Create corresponding redirect rule] を選択します。要求したクライアントは、対応するパブリック URL にリダイレクトされます。
    Dd939098.ima6_public(ja-jp,TechNet.10).gif
  8. [OK] をクリックすると、書き換えルールおよびリダイレクト ルールが生成されます。
    Dd939098.ima7_redirect(ja-jp,TechNet.10).gif

ルールのテスト

生成されたルールをテストするには、Web ブラウザーを開いて、次の URL を要求します。

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

Web サーバー上の書き換えルールによって、元の URL が article.aspx に変更され、クエリ文字列パラメーターの値として "234" と "some-title" が渡されています。

Dd939098.ima8_parameters(ja-jp,TechNet.10).gif

また、https://localhost/article.aspx?id=432&title=some-other-title を要求すると、ブラウザーは https://localhost/article/432/some-other-title にリダイレクトされます。

Dd939098.ima9_someother(ja-jp,TechNet.10).gif

まとめ

ここでは、URL 書き換えモジュールに含まれる "User Friendly URL" ルール テンプレートを使用して書き換えルールを生成する方法を学びました。このルール テンプレートを出発点として、既存の Web アプリケーションで、ユーザーや検索エンジンにとって使いやすい URL を実現する書き換えルールを設計できます。