IIS7 301 URL重写提供200状态而不是301状态

时间:2012-04-27 13:54:42

标签: redirect iis-7 http-status-code-301

我正在测试新客户端网站的一些网址重定向。旧站点是一个静态HTML站点,新站点是一个ASP.NET站点。我需要将新网站上不再存在的旧“.htm”网址重定向到等效的新.aspx网页。

我在web.config文件中添加了一些规则,如下所示:

  <rewrite>
      <rules>
          <rule name="Rule 1">
              <match url="index.htm" />
              <action type="Rewrite" url="/" redirectType="Permanent" />
          </rule>
          <rule name="Rule 2">
              <match url="whatwedo.htm" />
              <action type="Rewrite" url="/about-us.aspx" redirectType="Permanent" />
          </rule>
      </rules>
  </rewrite>

这似乎有效,因为当我在浏览器中加载URL时:http://www.myclientsite.com/whatwedo.htm它实际上显示了/about-us.aspx页面。但是,地址栏(http://www.myclientsite.com/whatwedo.htm)中的地址保持不变,这是我没想到的。这让我很好奇,所以我使用了一堆在线“301重定向检查器”服务以及Firebug和Chrome开发工具来检查发生了什么,他们似乎只是说没有重定向发生 - 他们只给出了200个状态.htm页面上的消息。

我很想做到这一点,因为如果出现问题,有一些重要的SEO影响,所以我想知道是否有人可以确认这是正确的行为,或者某种方式是否错误并且没有做正确的301重定向?如果错了,我该如何纠正它以执行真正的301重定向?

感谢任何人们的指点!

1 个答案:

答案 0 :(得分:3)

您可以使用<action type="Redirect" url="..." redirectType="Permanent" />重定向请求,而不是重写。