2012-04-27 64 views
2

我正在测试一个新的客户端网站的一些URL重定向。旧网站是一个静态HTML网站,新网站是一个ASP.NET网站。我需要将一些旧的'.htm'网址重新定向到新的.aspx页面。IIS7 301 URL重写提供了200状态而不是301状态

我已经添加了一些规则在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它实际显示/约-us.aspx页面。但是,地址栏保持不变(http://www.myclientsite.com/whatwedo.htm),这并不是我所期望的。这让我很好奇,所以我使用了大量的在线'301重定向检查器'服务以及Firebug和Chrome开发工具来检查发生了什么事情,并且他们似乎都只是说没有重定向发生 - 它们只给出200状态消息在.htm页面上。

我很想获得这个权利,因为如果这样做有错误,有一些重要的SEO含义,所以我想知道是否有人可以证实这是正确的行为或者它是否错误,而不是做301正确的重定向?如果它是错误的,我该如何纠正它以执行真正的301重定向?

感谢任何指点人!

回答

3

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

+0

绝对正确!谢谢克雷格 - 我没有意识到有两个不同的选项(重定向或重写),但现在它有很多意义。谢谢!! – Dan 2012-04-27 15:53:38