此 URL 重定向代码有什么问题?多个查询字符串值



我从我的URL重写代码中得到了最奇怪的行为。 它是一个 .NET 应用程序,代码位于配置文件中。 所有其他重写都按预期工作。

要重写的网址:

http://www.example.com/projects/offer_details.aspx?artistID=64&projectID=100&recordID=1353&selection=1&salesTypeID=6

守则:

<rule name="OrderDetails" stopProcessing="true">
<match url="^projects/offer_details.aspx$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{QUERY_STRING}" pattern="artistID=(d+)" />
<add input="{QUERY_STRING}" pattern="projectID=(d+)" />
<add input="{QUERY_STRING}" pattern="recordID=(d+)" />
<add input="{QUERY_STRING}" pattern="selection=(d+)" />
<add input="{QUERY_STRING}" pattern="salesTypeID=(d+)" />
</conditions>
<action type="Redirect" url="/OfferDetails/{C:1}/{C:2}/{C:3}/{C:4}/{C:5}" appendQueryString="false" />
</rule>

这是我在《提琴手》中看到的:

GET/OfferDetails/64?artistID=64&projectID=100&recordID=1353&selection=1&salesTypeID=6

看起来好像它正在捕获第一个参数和页面,但它忽略了所有其他值并添加了查询字符串,即使 appendQueryString="false"。

这是它应该重定向到的内容:

http://www.example.com/projects/OfferDetails/64/100/1353/1/6

有什么想法吗? 我被难住了。 已重新启动站点。 清除了所有缓存和纳达。

无法复制您的问题。如果您可以发布配置文件,这将很有帮助。

但是,我在重写规则中发现了另一个问题。您的重定向网址应该是/projects/OfferDetails/{C:1}/{C:2}/{C:3}/{C:4}/{C:5}的,而不是/OfferDetails/{C:1}/{C:2}/{C:3}/{C:4}/{C:5}的。

<rule name="OrderDetails" stopProcessing="true">
<match url="^projects/offer_details.aspx$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{QUERY_STRING}" pattern="artistID=(d+)" />
<add input="{QUERY_STRING}" pattern="projectID=(d+)" />
<add input="{QUERY_STRING}" pattern="recordID=(d+)" />
<add input="{QUERY_STRING}" pattern="selection=(d+)" />
<add input="{QUERY_STRING}" pattern="salesTypeID=(d+)" />
</conditions>
<action type="Redirect" url="/projects/OfferDetails/{C:1}/{C:2}/{C:3}/{C:4}/{C:5}" appendQueryString="false" />
</rule>

最新更新