web-dev-qa-db-ja.com

IISクエリ文字列をチェックするルールを書き換え、存在しない場合は追加します

URLにURLパラメータを追加するIIS URL書き換えルールを作成しようとしています。urlパラメータはhsscです。したがって、サーバーを介して処理されるすべてのURL 、そのパラメータが必要です。一部のURLにはすでに独自のパラメータがあり、他のURLにはないこと、ルートURLなどは、?hssc=1または&hssc=を追加する必要がある場合があることに注意してください。 、そのようなURLがある場合:

また、URLが非表示にならないようにする必要があります(バックエンドのリライトのように)。 URLをURLに表示する必要があるため、ユーザーがURLをコピーしたりブックマークしたりすると、パラメーターがそこにあります。

それに一致するように条件を設定しました\&hssc|\?hssc-URLを書き込む方法が必要なだけなので、URLが表示され、元のURLの一部が既に存在します。

3
M.R.

これでうまくいくはずです:

<rule name="Add hssc param" stopProcessing="true">
  <match url=".*" />
  <conditions>
    <add input="{QUERY_STRING}" pattern="hssc=1" negate="true" />
    <add input="&amp;{QUERY_STRING}" pattern="^(&amp;.+)|^&amp;$" />
  </conditions>
  <action type="Redirect" url="http://{HTTP_Host}/{R:0}?hssc=1{C:1}" appendQueryString="false"  />
</rule>

これにより、クエリ文字列の残りの部分を保持しながら、常にhssc = 1がクエリ文字列の先頭に追加されます。それはあなたのすべての例で機能します。追加ではなく追加しましたが、同じ最終結果だと思います。

2