に&のルールを書き換え?どのように私はセットアップルールは、URLで<strong><code>&</code></strong>で<strong><code>&</code></strong>を交換することができ、URL
これは動作します:www.../home.asp?h=1&w=2
これは失敗します。手始めにwww.../home.asp?h=1&w=2
に&のルールを書き換え?どのように私はセットアップルールは、URLで<strong><code>&</code></strong>で<strong><code>&</code></strong>を交換することができ、URL
これは動作します:www.../home.asp?h=1&w=2
これは失敗します。手始めにwww.../home.asp?h=1&w=2
を、次のようにあなたがめちゃめちゃw
パラメータにアクセスできることに留意すべきである:
Request.QueryString("amp;w");
しかし、私は期待もう少し雄弁なことがありますか?
次のようにIIS URL Rewriteモジュールへのアクセス、(上記7 IISと)、あなたは、web.configファイルにいくつかのルールを追加することができます。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="One Bad Ampersand" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{QUERY_STRING}" pattern="^([^&]+)&amp;([^&]+)$" />
</conditions>
<action type="Rewrite" url="{R:1}?{C:1}&{C:2}" appendQueryString="false" />
</rule>
<rule name="Two Bad Ampersand" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{QUERY_STRING}" pattern="^([^&]+)&amp;([^&]+)&amp;([^&]+)$" />
</conditions>
<action type="Rewrite" url="{R:1}?{C:1}&{C:2}&{C:3}" appendQueryString="false" />
</rule>
<rule name="Three Bad Ampersand" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{QUERY_STRING}" pattern="^([^&]+)&amp;([^&]+)&amp;([^&]+)&amp;([^&]+)$" />
</conditions>
<action type="Rewrite" url="{R:1}?{C:1}&{C:2}&{C:3}&{C:4}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
何これらのルールはやるチェックがクエリ文字列に入ってくる&
のためであるとし、それを置き換えます&
。私は、任意の数の出現を処理するジェネリックルールを考え出すことはできないと思います。しかし、私は必要な数を追加するために従うべき3回までのパターンを確立しました。
ユーザーのブラウザをリダイレクトする場合は、各操作のtype
属性をRewrite
からRedirect
に変更してください。
ご希望のものについて詳しくご説明できますか?書き換えを実行するレベルはどれくらいですか?最初は2つのURLエンコードされたパラメータ(hとw)を持ち、2番目のパラメータは1つのパラメータ(hは値 '1&w = 2')を持ちます。どちらもそれ自体が妥当です。だから多分もっと多くの文脈を表示すると、質問に答えるのに役立つかもしれません。 – rpy
@rpy最初のものと同じように動作するには2番目のものが必要です。 – Vixed
これは、外部(ブラウザ)が送信したもの、または書き換えエンジンへの入力として認識したものですか?何を試しましたか?私は明らかに '&'で '&'、 '&'で '&'と推測していましたか?また、準具体的な「&」は、「& amp; '?あるいは、 '&'のようないくつかの変わった変種は、 '&'? (そして、書き換えの出力として何を認識していますか? – rpy