我有Godaddy的域名,以及Azure网站基础架构上的网站。我想要实现的是只使用我的域名的www版本。如果用户在浏览器中输入“example.com”,我希望将其重定向到“www.example.com”。
该网站正在托管一个ASP.Net MVC 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
),那么你有两个选择:
example.com
指向GoDaddy IP,该IP响应重定向到{{1} } www.example.com
但是,如果您只是希望键入www.example.com
的用户获得与用户键入example.com
相同的内容,并且您不介意人们在地址栏中看到没有www的www.example.com
,然后按以下步骤操作:
example.com
,将“点数”设置为步骤1中找到的IP @
,“指向”设置为前缀为awverify
的天蓝网站地址(例如awverify
)awverify.mywebsite.azurewebsites.net
,“指向”设置为您的azure网站的地址(例如www
)mywebsite.azurewebsites.net
和example.com
添加到域名列表中。 如果您在步骤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()
);