构建IIS重定向规则以将产品页面重定向到传递产品ID的新URL

时间:2019-06-30 22:28:11

标签: regex redirect iis

我正在尝试使用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>

2 个答案:

答案 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>

结果:

enter image description here

答案 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>

但是,也许不是。