【问题标题】:IIS URL rewrite with optional parameters for page noIIS URL 使用可选参数重写页面编号
【发布时间】:2018-05-20 08:24:44
【问题描述】:

我需要帮助编写以下 url 模式的重写规则

www.mydomain.com/list-of-(buyers|suppers|all)-in-(location-name)/page/10.html
  1. 第一个参数是“buyers”或“suppliers”或“all”
  2. 第二个参数可以是任何位置名称
  3. '/page/number' 部分是可选的
  4. 网址总是以'.html'结尾

更新:

我已经编写了一个重写规则,它成功匹配了以下 url:

mysite.com/list-of-buyers-in-goa/page/5.html

同样的规则不适用于以下网址

mysite.com/list-of-buyers-in-goa.html

即当我从 url 中删除 page/no 部分时,它不起作用。我不需要页面/第一页没有参数。

由于网站上的所有其他页面都是.html页面,为了保持统一,我希望网址始终以.html结尾

这是我的重写规则

    <rule name="Rewrite rule for listing members">
      <match url="^list-of-([a-z-A-z]+)-in-([a-zA-z-]+)?(\/page\/)?([\d+])?\.html$" />
      <action type="Rewrite" url="members.aspx?type={R:1}&amp;location={R:2}&amp;page={R:4}" />
    </rule>

--

【问题讨论】:

    标签: asp.net iis url-rewriting web-config


    【解决方案1】:

    这样试试;

    .*.com\/list-of-(buyers|suppers|all)-in-.*html$
    

    我使用 "mysite.com/list-of-buyers-in-goa.html"mysite.com/list-of-buyers-in-goa/page 对其进行了测试/1234.html,它匹配。

    【讨论】:

    • 此规则与可选的“page/no”部分不匹配。
    • 您能提供示例网址吗?
    • 这里是示例网址 * mysite.com/list-of-buyers-in-goa.html * mysite.com/list-of-buyers-in-goa/page/1234.html 以上网址有三个参数 1. buyers 2. goa 3. 1234 我需要一个匹配上述两个网址的规则
    • 嗨@Rainman,我尝试了您更新的规则,但没有奏效。另外我想匹配完整的url,它以list-of-开头,然后匹配强制参数,匹配静态-in-字符串,匹配page no参数,如果找到,然后以.html结尾
    • 我更新了我的答案。并小心使用“.com”扩展名。
    猜你喜欢
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    相关资源
    最近更新 更多