IIS Url使用可选参数重写

本文关键字:参数 重写 Url IIS | 更新日期: 2024-10-30 08:11:11

我想重写一个网址,比如:

/categories/optional-sub-cat/product

/categories/optional-sub-cat/optional-2nd-sub-cat/product

我应该如何编写正则表达式以包含可选参数?

  <rule name="Products" enabled="true" stopProcessing="true">
          <match url="/(.+)/optional-sub-cat/optional-2nd-sub-cat/product" />
          <action type="Rewrite" url="products.aspx?cat={R:1}&amp;sub=..." />
        </rule> 

IIS Url使用可选参数重写

我还没有测试过这个,但是这样的东西应该可以工作([^/]基本上说匹配除/以外的所有内容,以便第一个.+不会吃掉所有匹配并在R1中生成它):

 <rule name="Products" enabled="true" stopProcessing="true">
      <match url="/([^/]+)/([^/]*/)?([^/]*/)?product" />
      <action type="Rewrite" url="products.aspx?cat={R:1}&amp;sub1={R:2}&amp;sub2={R:2}" />
    </rule>