IIS重写规则redirect并删除查询string

我试图从旧的网站到新的IIS 7.5重写。 我们有一个URL的列表,有和没有查询string。

我可以得到的URL没有查询stringredirect,但不是。

<rewrite> <rewriteMaps configSource="rewritemaps.config" /> <rules> <rule name="Redirect Rule" stopProcessing="true"> <match url=".*" ignoreCase="false" /> <conditions> <add input="{StaticRedirects:{URL}}" pattern="(.+)" /> </conditions> <action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent" /> </rule> </rules> </rewrite> 

这是示例rewritemap:

  • add key="/boat-insurance/canoe.aspx" value="/boat/canoe-insurance" (这个工作)
  • add key="/boat-insurance/canoe/details.aspx?#details" value="/boat/canoe-insurance" (这不是)

可以根据查询string(后面的所有内容)进行重写,但#details不是查询string的一部分。 这就是所谓的片段标识符,它是URL的客户端部分。 浏览器永远不会把它发送到服务器,所以服务器不可能使用它来进行URL重写。