我试图使用IIS 7中的URL规则引擎将当前产品页重定向到新产品页。
旧页:
example.com/itemform.aspx?item=X12878
example.com/itemform.aspx?item=Y87304&showmenu=T新URL
example.com/c/product/X12878
example.com/c/product/Y87304尝试
<rule name="Product Page Redirect">
<match url="/itemform\.aspx\?item=([.a-zA-Z0-9]+)$" />
<action type="Redirect" url="https://newsite.com/x/product/{C:1}" redirectType="Permanent" />
</rule>完全重写规则w/艾玛的建议
<rewrite>
<rules>
<rule name="Product Page Redirect" stopProcessing="true">
<match url="/itemform\.aspx\?item=([A-Za-z0-9.]+)" />
<conditions>
</conditions>
<action type="Redirect" url="https://newsite.com/x/product/{R:1}" appendQueryString="false" redirectType="Permanent" />
</rule>
</rules>
</rewrite>发布于 2019-07-01 02:52:52
根据您的描述,如果您想使用url重写来获得正确的查询字符串。
更多细节,请参阅以下代码:
<rule name="QueryStringRue" enabled="true" stopProcessing="true">
<match url="itemform.aspx" />
<conditions>
<add input="{QUERY_STRING}" pattern="^item=([0-9a-zA-Z]*)" />
</conditions>
<action type="Redirect" url="http://example.com/c/product/{C:1}" appendQueryString="false" />
</rule>结果:

发布于 2019-06-30 22:35:32
我的猜测是,可能删除结束$锚点可能只会使匹配有效:
<rule name="Product Page Redirect">
<match url="/itemform\.aspx\?item=([A-Za-z0-9.]+)" />
<action type="Redirect" url="https://newsite.com/x/product/{C:1}" redirectType="Permanent" />
</rule>但是也许不是。
https://stackoverflow.com/questions/56828483
复制相似问题