【问题标题】:How to redirect www.example.com to example.com?如何将 www.example.com 重定向到 example.com?
【发布时间】:2013-01-21 18:45:38
【问题描述】:

我的 MVC4 应用程序托管在 Azure(共享网站)上,并且在 exaple.com 上运行良好。
我想将 www.example.com 重定向到 example.com,但如果在 www.example.com 访问它会报告 404 错误。

我应该添加什么,这是解决此问题的正确方法吗?
我不认为这是 DNS 问题,因为我在 serverfault 上问过。

我尝试通过 Web.config 重定向:

<system.webServer>
<rewrite>
  <rules>
    <clear />
    <rule name="WWW Rewrite" stopProcessing="true" enabled="true">
      <match url=".*" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^www[.](.+)" />
      </conditions>
      <action type="Redirect" url="http://{C:1}/{R:0}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>
</system.webServer>

但它不起作用。

【问题讨论】:

  • Azure 不允许您指定多个域和一个规范吗?
  • @GrantThomas:确实如此,但在这种情况下,我将有两个 URL 指向同一个网站,这不利于 Google 排名和分析。

标签: c# azure asp.net-mvc-4 url-routing


【解决方案1】:

您必须拥有以下两者的 DNS 记录:www.mysite.com 和 mysite.com,A 或 CNAME。然后,在 Web 服务器上,您应该设置一个“301”重定向,将所有请求从 www.mysite.com 重定向到 mysite.com。

如果您不介意人们同时使用这两种方法,那么只需在您的 DNS 区域中使用 CNAME 记录即可:

www IN CNAME mysite.com

我认为有一种方法可以向 Google 注册并告诉它始终使用其中一个来索引您的网站。

【讨论】:

  • 在 Azure 网站上设置 301 重定向是我现在遇到的问题。
  • 我在我的 IIS 上使用上面的 web.config 尝试了您的示例(我没有 Azure 帐户),它按您的意愿工作:基本上去掉了“www”。从网址。你得到什么样的错误/行为?您是否设置了 DNS,以便 www.mysite.com 指向 site.com?
  • 是的,我有指向 @ 的 www 的 CNAME(否则我会得到 Server Not Found 错误)。在我的情况下,我收到服务器错误 404 - 找不到文件或目录。
【解决方案2】:

除了 Web.config 中的重写部分之外,两个域名(example.com 和 www.example.com)都必须在 Azure 中配置为自定义域。
然后一切都按预期工作。

【讨论】:

    猜你喜欢
    • 2011-07-06
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 2017-09-24
    相关资源
    最近更新 更多