-
-
-
書き換えのデフォルト構文ポリシーのチュートリアル例
-
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已动态机器翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
This content has been machine translated dynamically.
This content has been machine translated dynamically.
This content has been machine translated dynamically.
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.
Este artigo foi traduzido automaticamente.
这篇文章已经过机器翻译.放弃
Translation failed!
書き換えのデフォルト構文ポリシーのチュートリアルの例
書き換え機能を使用すると、HTTP ヘッダーの任意の部分を変更できます。また、応答の場合は HTTP 本文を変更できます。この機能を使用すると、不要な HTTP ヘッダーの削除、内部 URL のマスキング、Web ページのリダイレクト、クエリやキーワードのリダイレクトなど、多くの便利なタスクを実行できます。
次の例では、まず書き換えアクションと書き換えポリシーを作成します。次に、ポリシーをグローバルにバインドします。
このドキュメントでは、次の詳細について説明します。
- 外部 URL の内部 URL へのリダイレクト
- クエリのリダイレクト
- HTTP から HTTPS への書き換え
- 不要なヘッダーの削除
- Web サーバーのリダイレクトの削減
- サーバヘッダーのマスキング
- プレーンテキストをURLエンコードされた文字列に変換する、またはその逆
コマンドおよび構文の詳細については、書き換えコマンドリファレンスページを参照してください。
外部 URL を内部 URL にリダイレクトする
この例では、外部 URL を内部 URL にリダイレクトする書き換えアクションおよび書き換えポリシーを作成する方法について説明します。書き換えを実行する act_external_to_internal というアクションを作成します。次に、pol_external_to_internal というポリシーを作成します。
コマンドラインインターフェイスを使用して外部 URL を内部 URL にリダイレクトするには
- 書き換えアクションを作成するには、コマンドプロンプトで次のように入力します。
add rewrite action act_external_to_internal REPLACE "http.req.hostname.server" "host_name_of_internal_Web_server"
- 書き換えポリシーを作成するには、Citrix ADCコマンドプロンプトで次のように入力します。
add rewrite policy pol_external_to_internal "http.req.hostname.server.eq("host_name_of_external_Web_server") act_external_to_internal"
- ポリシーをグローバルにバインドします。
構成ユーティリティを使用して外部 URL を内部 URL にリダイレクトするには
- AppExpert > リライト > アクションに移動します。
- 詳細ペインで、[追加]をクリックします。
- [書き換えアクションを作成] ダイアログボックスで、act_external_to_internal という名前を入力します。
- HTTP サーバのホスト名を内部サーバ名に置き換えるには、「タイプ」リストボックスから「 置換 」を選択します。
- ヘッダー名フィールドに「 Host」と入力します。
- [置換文字列式] テキストフィールドに、Web サーバーの内部ホスト名を入力します。
- [Create] をクリックしてから、[Close] をクリックします。
- ナビゲーションペインで、[Policies] をクリックします。
- 詳細ペインで、[追加]をクリックします。
- 「名前」フィールドに「pol_external_to_internal」と入力します。このポリシーは、Web サーバーへの接続を検出します。
- [アクション] ドロップダウンメニューで、アクション act_external_to_internal を選択します。
- 式エディタで、次の式を作成します。
HTTP.REQ.HOSTNAME.SERVER.EQ("www.example.com")
- 新しいポリシーをグローバルにバインドします。
クエリのリダイレクト
この例では、クエリを適切な URL にリダイレクトする書き換えアクションおよび書き換えポリシーを作成する方法について説明します。この例では、リクエストに www.example.com に設定されたホストヘッダーと、 文字列 /query.cgi? の GET メソッドが含まれていることを前提としています。 サーバ = 5です。リダイレクトは、ホストヘッダーからドメイン名を抽出し、クエリ文字列から番号を抽出し、ユーザーのクエリをサーバー Web5.example.comにリダイレクトします。ここで、ユーザーのクエリの残りの部分が処理されます。
注:
次のコマンドは複数行に表示されますが、改行せずに 1 行で入力する必要があります。
コマンドラインを使用してクエリを適切な URL にリダイレクトするには
- HTTP サーバのホスト名を内部サーバ名に置き換える act_redirect_query という名前の書き換えアクションを作成するには、次のように入力します。
add rewrite action act_redirect_query REPLACE q#http.req.header("Host").before_str(".example.com")' '"Web" + http.req.url.query.value("server")#
- pol_redirect_query という名前の書き換えポリシーを作成するには、Citrix ADC のコマンドプロンプトで次のコマンドを入力します。このポリシーは、クエリ文字列を含む Web サーバーへの接続を検出します。クエリ文字列を含まない接続には、このポリシーを適用しないでください。
add rewrite policy pol_redirect_query q#http.req.header("Host").eq("www.example.com") && http.req.url.contains("?")' act_redirect_query#
- 新しいポリシーをグローバルにバインドします。
この書き換えポリシーは非常に固有であり、他の書き換えポリシーの前に実行する必要があるため、高い優先順位を割り当てることをお勧めします。優先度 1 を割り当てると、最初に評価されます。
HTTP から HTTPS への書き換え
この例では、Web サーバーの応答を書き換えて、文字列「http」で始まるすべての URL を検索し、その文字列を「https」に置き換える方法について説明します。これを使用すると、サーバーを HTTP から HTTPS に移動した後で Web ページを更新する必要がなくなります。
コマンドラインインターフェイスを使用して HTTP URL を HTTPS にリダイレクトするには
- 文字列「http」のすべてのインスタンスを文字列「https」に置き換える act_replace_http_with_https という名前の書き換えアクションを作成するには、次のコマンドを入力します。
add rewrite action act_replace_http_with_https replace_all 'http.res.body(100)' '"https"' -pattern http
- Web サーバへの接続を検出する pol_replace_http_with_https という名前の書き換えポリシーを作成するには、次のコマンドを入力します。
add rewrite policy pol_replace_http_with_https TRUE act_replace_http_with_https NOREWRITE
- 新しいポリシーをグローバルにバインドします。
この書き換え操作のトラブルシューティングについては、「事例:HTTP リンクを HTTPS に変換するための書き換えポリシーが機能しない」を参照してください。
不要なヘッダーの削除
この例では、Rewrite ポリシーを使用して不要なヘッダーを削除する方法について説明します。具体的には、次のヘッダーを削除する方法の例を示します。
- エンコーディングヘッダーを受け入れます。HTTP 応答から Accept Encoding ヘッダーを削除すると、応答の圧縮が防止されます。
- コンテンツの場所ヘッダー。HTTP 応答から Content Location ヘッダーを削除すると、サーバーがセキュリティ侵害を許す可能性のある情報をハッカーに提供できなくなります。
HTTP 応答からヘッダーを削除するには、書き換えアクションと書き換えポリシーを作成し、ポリシーをグローバルにバインドします。
コマンドラインインターフェイスを使用して適切な書き換えアクションを作成するには
コマンドプロンプトで、次のいずれかのコマンドを入力して、Accept Encoding ヘッダーを削除して応答の圧縮を防止するか、Content Location ヘッダーを削除します。
add rewrite action "act_remove-ae" delete_http_header "Accept-Encoding"
add rewrite action "act_remove-cl" delete_http_header "Content-Location"
コマンドラインインターフェイスを使用して適切な書き換えポリシーを作成するには
コマンドプロンプトで、次のいずれかのコマンドを入力して、Accept Encoding ヘッダーまたは Content Location ヘッダーを削除します。
add rewrite policy "pol_remove-ae" true "act_remove-ae"
add rewrite policy "pol_remove-cl" true "act_remove-cl"
コマンドラインインターフェイスを使用してポリシーをグローバルにバインドするには
コマンドプロンプトで、必要に応じて次のコマンドのいずれかを入力し、作成したポリシーをグローバルにバインドします。
bind rewrite global pol_remove_ae 100
bind rewrite global pol_remove_cl 200
Web サーバーのリダイレクトの削減
この例では、書き換えポリシーを使用して、ホームページへの接続と、末尾がスラッシュ (/) で終わる他の URL をサーバーの既定のインデックスページに変更し、リダイレクトを防止し、サーバーの負荷を軽減する方法について説明します。
コマンドラインを使用してディレクトリレベルの HTTP 要求を変更して、既定のホームページを含めるには
- スラッシュで終わる URL を変更して、デフォルトのホームページ index.html を含むように変更する action-default-homepage という名前の書き換えアクションを作成するには、次のように入力します。
add rewrite action "action-default-homepage" replace q\#http.req.url.path "/" "/index.html"\#
- ホームページへの接続を検出して新しいアクションを適用する policy-default-homepage という名前の書き換えポリシーを作成するには、次のように入力します。
add rewrite policy "policy-default-homepage" q\#http.req.url.path.EQ("/") "action-default-homepage"\#
- 新しいポリシーをグローバルにバインドして有効にします。
サーバヘッダーのマスキング
この例では、書き換えポリシーを使用して、Web サーバーからの HTTP 応答の Server ヘッダー内の情報をマスクする方法について説明します。このヘッダーには、ハッカーが Web サイトを侵害するために使用できる情報が含まれています。ヘッダーをマスキングしても、熟練したハッカーがサーバーに関する情報を見つけるのを防ぐことはできませんが、Webサーバーをハッキングすることは難しくなり、ハッカーがあまり保護されていないターゲットを選択するよう促します。
コマンドラインからの応答でサーバーヘッダーをマスクするには
- Server ヘッダーの内容を無意味な文字列に置き換える act_mask-server という名前の書き換えアクションを作成するには、次のように入力します。
add rewrite action "act_mask-server" replace "http.RES.HEADER(\\"Server\\")" "\\"Web Server 1.0\\""
- すべての接続を検出する pol_mask-server という名前の書き換えポリシーを作成するには、次のように入力します。
add rewrite policy "pol_mask-server" true "act_mask-server"
- 新しいポリシーをグローバルにバインドして有効にします。
プレーンテキストをURLエンコードされた文字列に変換する方法、またはその逆
次の式は、プレーンテキストを URL エンコードされた文字列に、またはその逆に変換します。
- URL_RESERVED_CHARS_SAFE(URLエンコードする文字列)。
例:
("abc def&123").URL_RESERVED_CHARS_SAFE
Output will be
“abc%20def%26123” which is url encoded.
- SET_TEXT_MODE(URLENCODED).DECODE_USING_TEXT_MODE. (URL ENCODED to string)
例:
("abc%20def%26123").SET_TEXT_MODE(URLENCODED).DECODE_USING_TEXT_MODE
Output will be
“abc def&123”
共有
共有
This Preview product documentation is Citrix Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Citrix Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Citrix product purchase decisions.
If you do not agree, select Do Not Agree to exit.