IIS 8.5 使用 URL 参数进行 URL 重写重定向

IIS 8.5 使用 URL 参数进行 URL 重写重定向

我想使用 IIS 8.5 重定向 SEO 友好的传出链接,例如 example.com/out/productxyz。因此,我创建了一个带有 Action-Type 转发的重写规则。目标 URL 具有参数,例如 example.com/action.aspx?param1=value¶m2=value

问题是:当 IIS 保存规则时,参数中的“&”字符会转换为其 HTML 值:

<action type="Redirect" url="http://example.com/action.aspx?param1=value&amp;amp;param2=value" redirectType="Found" />

因此,'&' 被转换为 '&'。我查看了标头,IIS 确实重定向到 'http://example.com/action.aspx?param1=value¶m2=value'。这会因为 '&' 而中断,因此我得到了另一侧,而不是使用正确参数所得到的一侧。

我已经尝试将 web.config 中的所有“&”替换为“&”,但随后我在 IIS 中收到错误,指出配置不是格式正确的 xml。所以我的问题是:如何将自定义 URL 重定向到具有 URL 参数的目标 URL,而不会破坏参数?

答案1

中的值web.config应该看起来像

<action type="Redirect" url="http://example.com/action.aspx?param1=value&amp;param2=value" redirectType="Found" />

不是(注意amp;这里有多余的内容)

<action type="Redirect" url="http://example.com/action.aspx?param1=value&amp;amp;param2=value" redirectType="Found" />

相关内容