在Azure网站中将非WWW重定向到WWW

时间:2014-03-03 08:59:03

标签: asp.net redirect azure

我有Godaddy的域名,以及Azure网站基础架构上的网站。我想要实现的是只使用我的域名的www版本。如果用户在浏览器中输入“example.com”,我希望将其重定向到“www.example.com”。

该网站正在托管一个ASP.Net MVC 5应用程序,如果它有所作为。我该如何配置?

5 个答案:

答案 0 :(得分:19)

<system.webServer>部分

下添加此代码此代码
<rewrite>
<rules>
<rule name="Redirect to www">
  <match url=".*" />
  <conditions logicalGrouping="MatchAny">
    <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" negate="true" />
  </conditions>
  <action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" redirectType="Permanent"/>
</rule>
</rules>
</rewrite>

答案 1 :(得分:15)

如果你想要一个真正的重定向(即当用户输入example.com然后浏览器中的地址自动变为www.example.com),那么你有两个选择:

  1. 使用GoDaddy提供的转发功能(您可以在GoDaddy仪表板(域详细信息页面)中找到它。通过这种方式,您可以将example.com指向GoDaddy IP,该IP响应重定向到{{1} }
  2. 在ASP.NET中编写一些代码,用于检测地址缺失的时间“www。”然后重定向到www.example.com
  3. 但是,如果您只是希望键入www.example.com的用户获得与用户键入example.com相同的内容,并且您不介意人们在地址栏中看到没有www的www.example.com ,然后按以下步骤操作:

    1. 获取与Azure网站关联的虚拟IP地址:从Azure管理门户单击您的网站,转到信息中心部分,然后单击管理域。你应该得到类似“配置A记录时使用的IP地址:xxx.xxx.xxx.xxx”。
    2. 转到GoDaddy,将“主机”的A记录设置为example.com,将“点数”设置为步骤1中找到的IP
    3. 添加CNAME记录,其中“主机”设置为@,“指向”设置为前缀为awverify的天蓝网站地址(例如awverify
    4. 添加CNAME记录,其中“主机”设置为awverify.mywebsite.azurewebsites.net,“指向”设置为您的azure网站的地址(例如www
    5. 将区域文件保存在GoDaddy
    6. 返回网站“管理域”部分中的Windows Azure,并将mywebsite.azurewebsites.netexample.com添加到域名列表中。
    7. 如果您在步骤6中收到任何错误,请等待几个小时让DNS更改进行传播并重试。

      此处有更多信息:https://www.windowsazure.com/en-us/documentation/articles/web-sites-custom-domain-name/

答案 2 :(得分:2)

我更喜欢只捕获裸域并在匹配时重定向,而不是使用带有negate = true的通用MatchAll。这对Azure来说效果很好,因为我只对单个域感兴趣,然后不必为localhost,localtest.me,子域等编写一堆排除项。

这是规则……只需将模式中的example更改为您的域:

  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Redirect To WWW" enabled="true" stopProcessing="true">
            <match url=".*" />
            <conditions logicalGrouping="MatchAny">
              <add input="{HTTP_HOST}" pattern="^example\.com$" />
            </conditions>
            <action type="Redirect" url="http://www.{HTTP_HOST}{URL}" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>

答案 3 :(得分:1)

这只是一个临时的302重定向吗?使用web.config中的规则进行perm 301重定向对SEO更好。

答案 4 :(得分:0)

ASP.NET Core MVC 中,将其添加到Startup.cs Configure()方法中。

            app.UseRewriter(new RewriteOptions()
                // redirect non www to www.
                .AddRedirectToWwwPermanent()

                 // While we are at it, let's also redirect http to https.
                .AddRedirectToHttpsPermanent()
            );