我从我的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>