如何使用web.config重定向到Windows Server 2008 R2上的查询字符串?

时间:2014-03-04 19:43:04

标签: iis redirect url-rewriting iis-7.5 windows-server-2008-r2

我想在运行Windows Server 2008 R2的IIS 7.5服务器上使用web.config进行重定向。我想简单地为另一个带有很长查询字符串的URL创建一个快捷方式URL:

www.example.com/redirect - > www.example.com/long_url.aspx?key1=value1&key2=value2

当我将以下重写规则添加到web.config时,它会产生500内部服务器错误:

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="^redirect$" stopProcessing="true">
                    <match url="^redirect$" />
                    <action type="Redirect" url="/long_url.aspx?key1=value1&key2=value2" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

我需要更改什么才能让它发挥作用?

1 个答案:

答案 0 :(得分:0)

在重写规则的操作中添加查询字符串时,您必须转义所有“?”和“&amp;”网址中的字符。

  • “?” =“&amp;#63;”
  • “&安培;” =“&amp; amp;”

以下代码可以使用:

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="^redirect$" stopProcessing="true">
                    <match url="^redirect$" />
                    <action type="Redirect" url="/long_url.aspx&#63;key1=value1&amp;key2=value2" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>