4

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

また、URL が隠されないようにしたい (舞台裏でのバックエンドの書き換えのように)。URL を URL に表示する必要があるため、ユーザーが URL をコピーしたりブックマークしたりすると、パラメーターが存在します。

それに一致するように条件を設定しました。\&hssc|\?hssc次に、URL を記述する方法が必要なだけです。そのため、元の URL の既存の部分が表示され、保持されます。

4

2 に答える 2

5

これを理解しました-ルールは次のように設定されます:

<rewrite>
            <rules>
                <rule name="sigh" patternSyntax="ECMAScript" stopProcessing="true">
                    <match url="(.*)" negate="false" />
                    <action type="Redirect" url="{PATH_INFO}?hssc=1" />
                    <conditions>
                        <add input="{QUERY_STRING}" pattern="^hssc=|\?hssc=|\&amp;hssc=" negate="true" />
                    </conditions>
                </rule>
            </rules>
        </rewrite>
于 2012-09-30T06:26:40.677 に答える
0

 

コードを通じてQSを維持するためのヒントとして:

public static string GetQS()
{
  var sb = new System.Text.StringBuilder();

  System.Collections.Specialized.NameValueCollection Qs = HttpContext.Current.Request.QueryString;

  var lst = new List<string>(Qs.AllKeys);

  foreach (string s in lst)
  {
    if (s == "MyOwnQSKey")
      sb.Append(s + "=" + "MyValue" + "&");
    else
      sb.Append(s + "=" + Qs[s] + "&");
  }

  if (!lst.Contains("MyOwnQSKey"))
    sb.Append("MyOwnQSKey=MyValue&");

  if (sb.ToString().EndsWith("&"))
    sb.Remove(sb.Length - 1, 1);

  return "?" + sb;
}

Url-Rewrite と QS であなたのプロジェクトに似た私のプロジェクトの 1 つからこれをコピーしました

この助けを願っています

 

于 2012-09-28T23:25:15.473 に答える