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

RBT*_*RBT 18 asp.net redirect azure

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

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

G R*_*der 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>
Run Code Online (Sandbox Code Playgroud)

  • 它适用于Azure,我刚刚使用它.谢谢. (2认同)

小智 17

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

  1. 使用GoDaddy提供的转发功能(您可以在GoDaddy仪表板(域详细信息页面)中找到它.这样您就可以指向example.com一个GoDaddy IP,它通过重定向来响应www.example.com
  2. 在ASP.NET中编写一些代码,用于检测地址缺失的时间"www." 然后重定向到www.example.com

但是,如果您只是希望键入的用户example.com获得与用户键入相同的内容,www.example.com并且您不介意人们example.com在地址栏中看到没有www,那么请按以下步骤操作:

  1. 获取与Azure网站关联的虚拟IP地址:从Azure管理门户单击您的网站,转到仪表板部分,然后单击管理域.你应该得到类似"配置A记录时使用的IP地址:xxx.xxx.xxx.xxx".
  2. 转到GoDaddy并设置A记录,其中"Host"为@,"Points to"设置为步骤1中找到的IP
  3. 添加设置为"Host"的CNAME记录,awverify并将"Points to"设置为前缀awverify为azure网站的地址(例如awverify.mywebsite.azurewebsites.net)
  4. 添加设置为"主机"的CNAME记录,www并将"指向"设置为您的azure网站的地址(例如mywebsite.azurewebsites.net)
  5. 将区域文件保存在GoDaddy中
  6. 返回到Windows Azure网站的"管理域"一节中,添加既example.comwww.example.com对域名的列表.

如果您在步骤6中收到任何错误,请等待几个小时让DNS更改进行传播并重试.

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


And*_*rew 8

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()
            );
Run Code Online (Sandbox Code Playgroud)