URL重写规则造成破坏

时间:2012-02-10 03:12:24

标签: url-rewriting friendly-url seo

第一个重写规则(下面),“重写为可读URL”,效果很好。第二条规则“删除WWW前缀”,从URL中删除WWW前缀,因此:

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 个答案:

答案 0 :(得分:1)

您似乎将重写过程的结果提供给重定向。尝试更改两个规则的顺序。

要获得更多控制权,您还可以将stopProcessing =“true”添加到规则标记。

在您的情况下,重写和重定向应该是完全独立的过程。