301 重定向 ASP.NET IIS

Posted

技术标签:

【中文标题】301 重定向 ASP.NET IIS【英文标题】:301 redirect ASP.NET IIS 【发布时间】:2011-08-24 03:04:03 【问题描述】:

我有一个网站,它有别名:

site1.com

site2.com

site3.com

但它们都是同一个站点。

我需要 asp.net 的规则,这将允许 site3.com 和 site2.com 以状态 301 重定向到 www.site1.com

【问题讨论】:

【参考方案1】:

我建议使用 IIS 中的 URL 重写模块来重定向这些请求。像这样的东西可能会起作用(尽管这可能需要调整)...

<rewrite>
  <rules>
    <rule name="CanonicalHostNameRule1" stopProcessing="true">
      <match url="site?.com" />
      <conditions>
        <add input="HTTP_HOST" pattern="^www.site1.com$" negate="true" />
      </conditions>
      <action type="Redirect" url="http://www.site1.com/" redirectType="Permanent"/>
    </rule>
  </rules>
</rewrite>

编辑 - 忘记包含 redirectType 属性

【讨论】:

Xeka 需要 301 重定向(可能是出于 SEO 的原因),这不是 :) @rciq - 您愿意添加更多细节吗?我承认我忘了包括我刚刚添加的redirectType。当我使用它时,IIS 会向我发送 301。 另外,这被添加到 web.config 中,这可能使@Xeka 更容易在他的环境中实现。 你是对的!我只是建议 Xeka 尝试一下您的解决方案:)【参考方案2】:

我认为更好的选择是在 IIS 中设置这些东西。在 IIS7 中,您可以为不需要的域创建站点(甚至是虚拟目录),然后在“HTTP 重定向”部分中,您可以设置目标和所需的 HTTP 状态代码。

如果由于某种原因您无法通过 IIS 执行此操作,请尝试在 SO 中搜索编码解决方案: https://***.com/search?q=asp.net+301+redirect

【讨论】:

我使用托管,但无法访问 IIS。我只能编辑 asp 脚本 :( 那你应该试试 FlyingDeveloper 的解决方案(他现在添加了重定向类型)。仅在万不得已时才寻求编码解决方案。

以上是关于301 重定向 ASP.NET IIS的主要内容,如果未能解决你的问题,请参考以下文章

将所有请求重定向到 IIS6 上的 ASP.NET MVC

如何在 web.config 中配置 301 永久重定向?

如何在 asp.net 中使用 301 重定向

如何在 ASP.Net MVC 中执行 301 永久重定向路由

asp.net 2005 中的 301 永久重定向

从客户端缓存中删除 http 301 重定向