ユーザー フレンドリ URL - ルール テンプレート

作成者: IIS チーム

ルール テンプレートは、特定のシナリオに対して 1 つ以上の書き換えルールを作成する簡単な方法を提供するために使用されます。 URL 書き換えモジュールには、一般的な使用シナリオ用のルール テンプレートがいくつか含まれています。 その URL 書き換えモジュール UI に加えて、カスタム ルール テンプレートを接続するためのフレームワークも用意されています。 このチュートリアルでは、URL 書き換えモジュールに含まれている "ユーザー フレンドリ URL" ルール テンプレートを使用する方法について説明します。

前提条件

このチュートリアルでは、次の前提条件が必要です:

  1. IIS 7.0 以降で ASP.NET 役割サービスが有効になっている。
  2. URL 書き換えモジュール 2.0 リリースがインストールされている。

テスト Web ページの設定

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

次の ASP.NET コードをコピーし、article.aspx という名前のファイルで %SystemDrive%\inetpub\wwwroot\ フォルダー内に配置します。

<%@ 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 Rewrite Module Test]\(モジュールの書き換えテスト\) ページが表示されているブラウザー画面のスクリーンショット。

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

"ユーザー フレンドリ URL" ルール テンプレートを使用すると、動的 Web アプリケーションの URL をよりユーザーと検索エンジンにわかりやすいものにする書き換えルール、リダイレクト ルール、アウトバウンド ルールを生成できます。 通常、動的 Web ページでは出力 HTML の生成時にクエリ文字列パラメータが使用されます。 クエリ文字列が含まれる URL (例: http://contoso.com/articles.aspx?year=2008&month=11) は、単純な階層ベース URL (例: http://contolso.com/articles/2008/11) を使用して通信する場合と比べて、人間にとってわかりやすくありません。 さらに、一部の検索エンジン クローラーは、Web サイト ページのインデックスを作成する際に、クエリ文字列を無視することがあります。 ルール テンプレートを使用すると、階層ベース URL をクエリ文字列を使用した URL に変換する書き換えルールを生成できます。 またテンプレートを使用して、必要に応じて、クエリ文字列を使用した Web クライアント フォームの URL をリダイレクトして URL をクリーンするために使用できるリダイレクト ルールを生成することもできます。 さらに、HTML 応答内のクエリ文字列を使用した URL の出現箇所すべてを相当する階層ベース URL に置き換えるアウトバウンド書き換えルールを作成できます。

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

  1. IIS マネージャーに移動します。
  2. [既定の Web サイト] を選択します。
  3. 機能ビューで、[URL 書き換え] をクリックします。
    [既定の Web サイト] 画面の [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 に変換できる方法に関する推奨オプションがあるドロップダウン リストを展開します。
    [ユーザー フレンドリ U R L を有効にするルールの追加] ダイアログ ボックスのスクリーンショット。
  6. 2 番目のオプションの http://localhost/article/123/some-title を選択します。 それに応じて URL パターンと置換用 URL が更新されていることに注意してください。 これらは、ルール テンプレートにより作成される書き換えルールで使用されます。 Web クライアントで内部 URL を使用して Web ページを要求する際に使用されるリダイレクトルールを作成するには、[対応するリダイレクトルールを作成する] チェック ボックスをオンにします。 これらのクライアントは、対応するパブリック URL にリダイレクトされます。
    また、[対応するアウトバウンド書き換えルールを作成する] チェック ボックスをオンにして、応答 HTML 内の内部 URL のすべてのインスタンスを相当するパブリック URL に置き換えるアウトバウンド ルールを作成します。
    [ユーザー フレンドリ U R L を有効にするルールの追加] ダイアログ ボックスのスクリーンショット。対応するパブリック U R L フィールドが強調表示されています。
  7. [OK] をクリックすると、書き換えルール、リダイレクト ルール、アウトバウンド ルールが生成されます。
    [I I S マネージャー] ウィンドウに [U R L の書き換え] ページが表示されているスクリーンショット。受信規則と送信規則が表示されます。

ルールのテスト

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

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

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

Web ブラウザーで、[リンクの URL] のテキストの上にマウスを移動します (または、メニューの [ページ] -> [ソースの表示...] を使用します)。 リンクの URL は、元来はクエリ文字列パラメータを使用する形式であっても、階層ベース URL 形式を使用するように URL 書き換えモジュールにより置き換えられていることに注意してください。

[U R L Rewrite Module Test]\(モジュールの書き換えテスト\) ページが表示されているブラウザー ウィンドウのスクリーンショット。リダイレクトされた U R L は円で囲まれています。

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

まとめ

このチュートリアルでは、URL 書き換えモジュールに含まれている "ユーザー フレンドリ URL" ルール テンプレートを使用して書き換えルールを生成する方法について説明しました。 このルール テンプレートは、既存の Web アプリケーションでユーザーと検索エンジンにわかりやすい URL を使用できるようにするための書き換えルールを設計する際の始点として使用できます。