前提条件このチュートリアルには次の前提条件が必要です。 IIS は URL 書き換えモジュール 2.1 をインストールします 短縮 URL http://www.iis.net/extensions/URLRewrite ダウンロードページ https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads ダウンロードリンク https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_en-US.msi https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_zh-CN.msi ASP.NET 役割サービスが有効になっている IIS 7 以降。 テストページの設定URL 書き換えモジュールがどのように機能するかを示すために、簡単なテスト ASP.NET ページを使用します。このページは、Web サーバーの変数を読み取り、その値をブラウザーに出力します。 次の ASP.NET コードをコピーし、%SystemDrive%\inetpub\wwwroot\ フォルダーの article.aspx という名前のファイルに配置します。 <%@ ページ言語="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"> <ヘッド> <meta http-equiv="コンテンツタイプ" コンテンツ="text/html; charset=utf-8" /> <title>URL 書き換えモジュール テスト</title> </head> <本文> <h1>URL 書き換えモジュール テスト ページ</h1> <テーブル> <tr> <th>サーバー変数</th> <th>値</th> </tr> <tr> <td>元の URL: </td> <td><%= Request.ServerVariables["HTTP_X_ORIGINAL_URL"] %></td> </tr> <tr> <td>最終 URL: </td> <td><%= Request.ServerVariables["SCRIPT_NAME"] + "?" + Request.ServerVariables["QUERY_STRING"] %></td> </tr> </テーブル> </本文> </html> このファイルをコピーした後、http://localhost/article.aspx にアクセスし、ブラウザーでページが正しく表示されるかどうかを確認します。 書き換えルールの作成次の形式を使用して URL を書き換える単純な書き換えルールを作成します。
IIS マネージャーの URL 書き換え UI を使用して書き換えルールを作成します。これを行うには、次の手順に従います。 1. IIS マネージャーに移動します。 2. デフォルトのWebサイトを選択します。 3. 機能ビューで、「URL 書き換え」をクリックします。 4. 右側の「アクション」ウィンドウで、「規則の追加...」をクリックします。 5. [ルールの追加] ダイアログ ボックスで [空のルール] を選択し、[OK] をクリックします。 ここで、実際の書き換えルールを定義する必要があります。 URL 書き換えモジュールでは、次の 4 つの必須情報を指定して書き換えルールが定義されます。
命名規則[名前] テキスト ボックスに、このルールを一意に識別する名前を入力します (例: 「article.aspx に書き換える」)。 モードの定義パターン テキスト ボックスに次の文字列を入力します。
この文字列は、パターンが次の条件を満たすすべての URL 文字列と一致することを指定する正規表現です。
正規表現の一部が括弧で囲まれていることに注意してください。これらの括弧は、後方参照を使用してルール内で後で参照できるキャプチャ グループを作成します。 アクションの定義作成するルールは URL を書き換えるものなので、「アクション」グループ ボックスにリストされている「書き換えアクション」タイプを選択します。 「URL の書き換え:」テキスト ボックスに次の文字列を入力します。
この文字列は、入力 URL を書き換える新しい値を指定します。クエリ文字列パラメータの値には、括弧を使用してルールパターンで定義されたキャプチャグループへのバック参照である {R:1} と {R:2} を使用していることに注意してください。 その他の設定はすべてデフォルト値のままにしておきます。受信規則のプロパティの編集ページは次のようになります。 右側の「適用」をクリックしてルールを保存します。 設定ファイル内の書き換えルールを表示する書き換えルールは、ApplicationHost.config ファイルまたは Web.config ファイルに保存されます。作成したルールの構成を確認するには、%SystemDrive%\inetpub\wwwroot にある Web.config ファイルを開きます。このファイルには、次のルール定義を含む <rewrite> セクションが表示されます。 <書き直し> <ルール> <rule name="article.aspx に書き換える"> <match url="^article/([0-9]+)/([_0-9a-z-]+)" /> <action type="書き換え" url="article.aspx?id={R:1}&title={R:2}" /> </ルール> </ルール> </書き換え> 上記の構文は、Windows Azure Websites (WAWS) の Web.config で URL 書き換えを構成する場合にも適用されます。 書き換えルールのテストルールが URL を正しく書き換えていることをテストするには、Web ブラウザを開いて次の URL を要求します。
Web サーバーの書き換えルールによって元の URL が Article.aspx に変更され、クエリ文字列パラメータの値として「234」と「some-title」が渡されたことがわかります。 リダイレクトルールを作成するここで、すべての URL を次の形式でリダイレクトするリダイレクト ルールを作成します。
リダイレクト ルールを使用すると、複数の URL を 1 つの Web ページに指定できます。 これを行うには、IIS マネージャーで URL 書き換え機能ビュー UI を開きます。 [ルールの追加...] をクリックし、空のルール テンプレートを再度選択します。 「ルールの編集」ページで、以下を入力します。
以下に示すように、名前、スタイル、アクションを入力します。 以下のようにリダイレクト URL を入力します。 その他の設定はすべてデフォルト値のままにしておきます。右側の「適用」をクリックしてルールを保存します。 リダイレクトルールのテストルールがリクエストを正しくリダイレクトしていることをテストするには、Web ブラウザを開いて次の URL を要求します。 http://localhost/blog/some-other-title/323 リダイレクト ルールの実行により、ブラウザーが http://localhost/article/323/some-other-title にリダイレクトされ、その後、先ほど作成した書き換えルールに従ってリクエストが書き換えられることがわかります。 アクセスブロックルールの作成3 番目に作成するルールは、ホスト ヘッダーが設定されていない場合、Web サイトへのすべてのリクエストをブロックします。このタイプのルールは、ホスト名を使用する代わりにサーバーの IP アドレスに対して HTTP 要求を行うことによって行われるハッキングの試みを防ぐ場合に役立ちます。 このルールは、IIS マネージャーを使用せずに作成します。この記事の冒頭の article.aspx テスト ファイルに使用した %SystemDrive%\inetpub\wwwroot\ フォルダー内の Web.config ファイルを開きます。 <rewrite> セクションを見つけます。次のルールを <rules> コレクションに挿入し、コレクションの最初のルールにします。 <rule name="不正なリクエストを失敗させる"> <マッチURL=".*"/> <条件> <入力を追加="{HTTP_HOST}" パターン="localhost" 否定="true" /> </条件> <アクション タイプ="中止要求" /> </ルール> <rewrite> セクションは次のコードのようになります。 <書き直し> <ルール> <rule name="不正なリクエストを失敗させる"> <マッチURL=".*"/> <条件> <入力を追加="{HTTP_HOST}" パターン="localhost" 否定="true" /> </条件> <アクション タイプ="中止要求" /> </ルール> <rule name="ブログからリダイレクト"> <match url="^blog/([_0-9a-z-]+)/([0-9]+)" /> <action type="Redirect" url="article/{R:2}/{R:1}" redirectType="見つかりました" /> </ルール> <rule name="article.aspx に書き換える"> <match url="^article/([0-9]+)/([_0-9a-z-]+)" /> <action type="書き換え" url="article.aspx?id={R:1}&title={R:2}" /> </ルール> </ルール> </書き換え> ルールを分析して、それが何をするのか理解してみましょう。
上記の要素は、このルールが任意の URL 文字列に一致することを示します。
上記の要素は、サーバー変数 HTTP_HOST を読み取り、それをパターン「localhost」と照合し、結果を否定することで、Host ヘッダー値を取得する条件をルールに追加します。つまり、条件はホスト ヘッダーが「localhost」と一致しないことを検証します。
上記の要素は、URL 書き換えモジュールに HTTP リクエストを終了するように指示します。 アクセスブロックルールのテストこのルールをテストするには、Web ブラウザーを開いて、http://127.0.0.1/article/234/some-title にリクエストを送信します。ブラウザがサーバーから応答を受信していないことがわかります。ただし、http://localhost/article/234/some-title をリクエストすると、Web サーバーは正常に応答します。 失敗した表示は次のとおりです。 成功は次のように表示されます。 まとめこのチュートリアルでは、IIS マネージャーを使用するか、Web.config ファイルを手動で編集して URL 書き換えルールを構成する方法を学習しました。このチュートリアルで作成されるルールは、正規表現のサポートや、HTTP ヘッダーとサーバー変数を使用して書き換えを決定する機能など、URL 書き換えモジュールのいくつかの重要な機能を示しています。 |
<<: Vue はトークンの有効期限が切れると自動的にログインページにジャンプする機能を実装します
Linux に Scala 環境をインストールするのは非常に簡単です。Ubuntu 環境であれば、さ...
この記事では、モバイルとPCで簡単なドラッグアンドドロップ効果を実現するためのTypescript ...
Web プロジェクトを開発する場合、IIS をインストールする必要があります。IIS がインストール...
最近確認された5件のデータを照会するビジネスがあります。 `id`、`title` を選択 `th_...
このチュートリアルでは、ウェブデザインにおけるFORMフォームタグのさまざまな属性の応用を紹介します...
フロントエンド開発者がよく遭遇する問題は、ユーザーに情報を提示するためのポップアップ ウィンドウを作...
具体的なコードは次のとおりです。 <!DOCTYPE html> <html>...
通常、Java の学習とプロジェクトのデプロイはローカルで行われますが、実稼働環境は Linux 環...
この記事では、例を使用して、MySQL データベースの基本的な知識と操作について説明します。ご参考ま...
コアコード /*-------------------------------- 2つ以上のフィール...
トランザクションは、複数の SQL ステートメントの原子性、つまり、それらが一緒に完了するか、一緒に...
目次1. ダウンロード2. 展開3. Nginxログ関連の設定4. ファイルダウンローダーとして n...
Mysql が CPU を占有しすぎる場合、どこから最適化を開始すればよいでしょうか? CPU 使...
Docker 公開方法は、DevOps (送信、コンパイル、パッケージ化、リリースなどの一連のイベ...
1. いつsetUpを実行するかvue3 ではメソッドを正常に使用できるようになったことは誰もが知っ...