IIS 重写规则以检查查询字符串并在它不存在时添加它

M.R*_*.R. 4 regex iis-7 isapi-rewrite url-rewriting url-rewrite-module

我正在尝试制定将 URL 参数附加到 URL 的 IIS URL 重写规则。url 参数是hssc. 因此,通过服务器处理的任何 url 都需要该参数。请记住,某些 url 已经有自己的参数,而其他 url 则没有,还有根 url 等,有时需要添加?hssc=1&hssc=- 所以,如果我有这样的 URL:

我还希望 URL 不应该被隐藏(就像在后台重写一样)。我需要 URL 出现在 URL 中,因此当用户复制 URL 或将其添加为书签时,参数就在那里。

我已经设置了条件来匹配它\&hssc|\?hssc- 现在我只需要一种编写 URL 的方法,这样它就会出现并保留已经存在的原始 URL 部分。

M.R*_*.R. 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>
Run Code Online (Sandbox Code Playgroud)