我正在尝试使用IIS 7中的URL规则引擎将我们当前的产品页面重定向到我们的新产品页面。
旧页面:
example.com/itemform.aspx?item=X12878
example.com/itemform.aspx?item=Y87304&showmenu=T
新网址
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://ccstore-prod-zb3a.oracleoutsourcing.com/x/product/{C:1}" redirectType="Permanent" />
</rule>
<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://ccstore-prod-zb3a.oracleoutsourcing.com/x/product/{R:1}" appendQueryString="false" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
答案 0 :(得分:2)
根据您的描述,如果您想使用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>
结果:
答案 1 :(得分:0)
我的猜测是,也许删除结尾的$
锚可能只会使匹配有效:
<rule name="Product Page Redirect">
<match url="/itemform\.aspx\?item=([A-Za-z0-9.]+)" />
<action type="Redirect" url="https://ccstore-prod-zb3a.oracleoutsourcing.com/x/product/{C:1}" redirectType="Permanent" />
</rule>
但是,也许不是。