【问题标题】:IIS UrlRewrite with optional parameters带有可选参数的 IIS UrlRewrite
【发布时间】:2015-03-07 13:29:14
【问题描述】:

我想重写一个 url,比如:

/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> 

【问题讨论】:

    标签: c# asp.net url-rewriting


    【解决方案1】:

    我还没有对此进行测试,但是这样的事情应该可以工作([^/] 基本上表示匹配除 / 以外的所有内容,因此第一个 .+ 不会吃掉所有匹配项并在 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> 
    

    【讨论】:

    • 经过一些谷歌搜索后,我发现您的答案只是缺少括号后的问号以使其可选
    • 你说得对,我忘了把它放在那里。谢谢。
    猜你喜欢
    • 2020-11-15
    • 2011-05-06
    • 2021-02-28
    • 2016-10-17
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    相关资源
    最近更新 更多