如何在url重写中检查条件

时间:2013-05-06 11:42:39

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

我在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

没关系,但它也检测到以下类型的网址,遗憾的是图像路径: http://www.emusician.com/Portals/9/SlideShowThumbnails/15/ad300x250_02.gif

任何人都可以告诉我如何避免这种情况。

1 个答案:

答案 0 :(得分:0)

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

UrlRewrite模块在<conditions>下有一个<rule>元素,我们限制了网址中的任何类型的文件。

以下是完整的解决方案:

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

谢谢大家帮助我。

相关问题