2010-11-09 126 views
0

我创建了一个这样的规则:IIS7重写规则不工作

<rewrite> 
     <rules> 
      <rule name="ImageRedirect" stopProcessing="false"> 
       <match url="^(.*)/(.*)/" /> 
       <action type="Rewrite" url="http://www.lrgimages.com/ImageRewrite.aspx?=img={R:2}" logRewrittenUrl="true" /> 
      </rule> 
     </rules> 
    </rewrite> 

我不断收到类似规则的404.0消息不工作或IIS不捡不起来。在规则的测试parttern部分,模式测试正常。如果我直接去http://www.lrgimages.com/ImageRewrite.aspx页面loades,但不是当我尝试:http://www.lrgimages.com/TestImage

有什么想法?

更新:我想通了。当重写一个url时,它并没有考虑到hte http://www.DomainName.com。重定向以这种方式工作,因为htat是真正在做的事情。我习惯于其他重写引擎没有考虑到http://www.DomainName.com。谢谢你带领我走向正确的方向。

+0

该规则下面所提到是不会匹配您的测试网址,试试“^ TestImage”的规则,看看是否模块根本不需要加载。 – Robb 2010-11-09 17:05:56

+0

我试过了,现在我得到了404.4的消息。 – DDiVita 2010-11-09 17:19:39

回答

2

我不认为“/ TestImage”匹配^(.*)/(.*)/ ...

+0

重写引擎在检查表达式时是否考虑到“http://www.lrgimage.com”?当我将“http://www.lrgimages.com/TestImage”放入测试仪时,我看到3个匹配,所以我认为引擎会为我解析出这些项目。 – DDiVita 2010-11-09 17:09:58

+0

@DDiVita大多忽略了域名,并且在此之后才在路径上运行。这里有一个很好的教程http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/ – Robb 2010-11-09 17:14:25