2

したがって、これは今日の「日常の要件ではない」です:)

一部のクエリ パラメータが欠落している場合にのみ、他のページにリダイレクトするルールを作成したいと考えています。

パラメータが存在する場合に書き換え/リダイレクトする例をいくつか見つけましたが、存在しないかどうかを確認したい場合はどうすればよいですか?

たとえば、これはパラメーターが存在するかどうかをテストし、それに基づいてリダイレクトします。

        <rule name="RedirectUserFriendlyURL1" stopProcessing="true">
            <match url="^$" />
            <conditions>
                <add input="{QUERY_STRING}" pattern="^lon=([^=&amp;]+)&amp;lat=([^=&amp;]+)&amp;zoom=([^=&amp;]+)$" />
            </conditions>
            <action type="Redirect" url="/{C:1}/{C:2}/{C:3}" appendQueryString="false" />
        </rule>

このルールを変更して、存在しないかどうかをテストするにはどうすればよいですか?

4

1 に答える 1

1

^((?!regex).)*$ 正規表現を含まないための正規表現です。詳細はこちらhttp://bloggernitin.blogspot.in/2007/12/regex-for-doesnt-contain.html

lon=xyz does not exist in params のようなものを探している場合は、この正規表現 ^(?!lon=(xyz)) を使用して、文字列の先頭に lon param がないかどうかを確認します。

その他の例 -

ズーム パラメーターのみがクエリ文字列であり、緯度/経度が欠落している場合、
例: クエリ文字列 a) "lat=23&zoom=10" b) "zoom=13"

regex - ^(?!lon=. )( ?!lat=. )zoom=([^=&]+)
結果 - a) 一致なし b) $1= 13に一致 これで

、他のパラメータにデフォルト値を与えることができます。

于 2013-04-20T08:16:52.443 に答える