IIS7 301 URL 重写给出 200 状态而不是 301 状态
Posted
技术标签:
【中文标题】IIS7 301 URL 重写给出 200 状态而不是 301 状态【英文标题】:IIS7 301 URL rewrite gives 200 status rather than 301 status 【发布时间】:2012-05-08 06:45:01 【问题描述】:我正在为一个新的客户站点测试一些 URL 重定向。旧站点是静态 html 站点,新站点是 ASP.NET 站点。我需要将新站点上不再存在的一些旧的“.htm”URL 重定向到等效的新 .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】:您可以使用<action type="Redirect" url="..." redirectType="Permanent" />
来重定向请求而不是重写。
【讨论】:
绝对准确!谢谢克雷格-我没有意识到那里有两种不同的选择(重定向或重写),但现在很有意义。谢谢!!以上是关于IIS7 301 URL 重写给出 200 状态而不是 301 状态的主要内容,如果未能解决你的问题,请参考以下文章