IIS 8.5 - 301 перенаправление и амперсанд

Я изо всех сил пытаюсь заставить 301 перенаправления работать, когда URL включает амперсанд в iis. Код, который я использую ниже:

    <rewrite>
        <rules>
            <rule name="Redirect rule1 for 301-maps">
                <match url=".*" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{301-maps:{REQUEST_URI}}" pattern="(.+)" />
                </conditions>
                <action type="Redirect" url="{C:1}" appendQueryString="false" />
            </rule>
        </rules>
    </rewrite>        

        <rewriteMaps>
            <rewriteMap name="301-maps">
            <add key="/mobile/product.htm?id=139" value="/" /> << works
            <add key="/mobile/product.htm?id=139&subid=1" value="/" /> << fails syntax

1 ответ

Решение

Все, что вам нужно, это использовать &amp; на месте &, Ваш URL в карте перезаписи должен быть:

<add key="/mobile/product.htm?id=139&amp;subid=1" value="/" />

В XML вам нужно экранировать следующие 5 символов:

"   &quot;
'   &apos;
<   &lt;
>   &gt;
&   &amp;
Другие вопросы по тегам