我正在尝试在 IIS 7.5 中将旧网站重写为新网站。我们有一个包含和不包含查询字符串的 URL 列表。
我可以获取没有查询字符串的 URL 来重定向,但不能和。
<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>
这是示例重写映射:
- 添加
key="/boat-insurance/canoe.aspx" value="/boat/canoe-insurance"
(有效) - 添加
key="/boat-insurance/canoe/details.aspx?#details" value="/boat/canoe-insurance"
(这不)
答案1
可以根据查询字符串( 后面的所有内容?
)进行重写,但#details
不是查询字符串的一部分。它被称为片段标识符,是 URL 中仅供客户端使用的部分。浏览器永远不会将其发送到服务器,因此服务器不可能使用它进行 URL 重写。