2012-02-10 80 views
0

第一个重写规则(下文)“重写为可读URL”非常完美。第二条规则,“删除www前缀”,将删除网址的www前缀,所以这样的:导致严重破坏的URL重写规则

http://www.mydomain.com/blog... 

变为这样:

http://mydomain.com/blob... 

现在,这是造成一点破坏。虽然文章加载罚款,如果规则有工作,例如WWW存在,在浏览器地址栏中的URL不幸变回不可读的版本是这样的:

http://mydomain.com/blog/article.asp?id=1&title=blog-title 

但重写工作过,在WWW已被删除。但为什么它从友好的URL变成了非友好的URL呢?任何人都可以发现我的错误或建议如何纠正这一点?

这是我的web.config文件的一部分:

<rules> 
    <rule name="Rewrite to readable URL"> 
      <match url="^blog/([0-9]+)/([_0-9a-z-]+)" /> 
      <action type="Rewrite" url="blog/article.asp?id={R:1}&amp;title={R:2}" /> 
    </rule> 
    <rule name="Remove WWW prefix" > 
     <match url="(.*)" ignoreCase="true" /> 
     <conditions> 
     <add input="{HTTP_HOST}" pattern="^www\.mydomain\.com" /> 
     </conditions> 
     <action type="Redirect" url="https://mydomain.com/{R:1}" redirectType="Permanent" /> 
    </rule> 
</rules> 

回答

1

它看起来像你给你的重写过程的结果入重定向。尝试改变这两个规则的顺序。

如需更多控制,还可以将stopProcessing =“true”添加到规则标记。

就你而言,重写和重定向应该是完全独立的过程。

+0

我交换了两条规则,它似乎工作。感谢您的回答 :) – TheCarver 2012-02-10 17:52:26