【问题标题】:How to check condition in url rewrite如何在 url 重写中检查条件
【发布时间】:2013-05-06 11:42:39
【问题描述】:

我在下面的 url 重写模块中有一条规则

<rule name="articleSectionUrl">
  <match url="(.+)/([0-9]+)/(.+)/([0-9]+)" />
  <action type="Rewrite" url="article.aspx?articleid={R:4}" appendQueryString="false" />
</rule>

它可以正常工作,因为它检测到以下类型的文章网址:
http://www.emusician.com/news/0766/spl-launches-usb-and-madi-interfaces/151461

这很好,但它也检测到以下类型的 url,不幸的是,这是图像路径: http://www.emusician.com/Portals/9/SlideShowThumbnails/15/ad300x250_02.gif

谁能告诉我如何避免这种情况。

【问题讨论】:

  • 请详细说明您的具体情况,例如:“我不想匹配任何以 [.gif] 结尾的 URL”或“我希望我的 URL 仅在以数字结尾时匹配”等等。
  • 我不想匹配 url 末尾的任何图像,它应该只匹配 url 结尾的数字(文章 id)而已

标签: asp.net url-rewriting url-pattern


【解决方案1】:

谢谢大家,@Aquillo 根据您的正则表达式,它只会限制我在正则表达式中提供扩展名的文件,这意味着我总是必须在正则表达式中为我想忽略的 url 提供扩展名,所以这里是完整的解决我的问题。

UrlRewrite 模块在 &lt;rule&gt; 下有一个 &lt;conditions&gt; 元素,因此我们限制了 url 中的任何类型的文件。

这是完整的解决方案:

<rule name="articleSectionUrl">
          <match url="(.+)/([0-9]+)/(.+)/([0-9]+)" />
          <action type="Rewrite" url="article.aspx?articleid={R:4}" appendQueryString="false" />
            <conditions>
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            </conditions>
        </rule>

感谢大家帮助我。

【讨论】:

    猜你喜欢
    • 2012-04-07
    • 2021-04-09
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    • 2015-04-14
    相关资源
    最近更新 更多