我最近部署了一个Windows Azure应用程序,并通过DreamHost门户配置了我的域的DNS。现在我的网站可以通过http://www.coziie.com访问,但不能通过非www地址访问。
我在其中一篇文章中读到了我应该在DNS设置中添加A记录并指向Windows Azure的虚拟IP。如何获得Windows Azure部署的虚拟IP?
或者有没有更好的方法将所有非www网址重定向到www?
已解决:我可以通过在DreamHost DNS设置中简单配置网站重定向设置来解决此问题。一个简单的301重定向http://coziie.com到www.coziie.com解决了这个问题。
答案 0 :(得分:15)
你在这里谈论两个不同的问题。
首先是设置DNS记录,以便您的未经过管理的网址正常工作。第二种是在网址被访问时重定向网址。
更新我已经从此处删除了之前对CNAME的建议,因为我之前没有意识到您无法将根域设置为CNAME记录。看来,在Azure的ip限制下,您必须将根域记录指向非天蓝色的asp.net托管,然后将301重定向(例如我的回复中的另一个)转发到Azure域名(www域名)。
当你http://coziie.com/指向你的网站并提供网页服务的时候就可以解决这个问题,因为谷歌可能会感到困惑,想想它的两个不同的网站,然后在两者之间稀释你的网页排名。
诀窍是设置301重定向。我相信url重写工具最初是作为IIS7的插件开始的,但现在包含在其中了吗?你可能需要快速搜索一下。
无论如何,这是我在IIS7服务器上安装官方url重写扩展程序的方法(这在你的web.config中):
<system.webServer>
<rewrite>
<rules>
<clear/>
<rule name="WWW Rewrite" enabled="true">
<match url="(.*)"/>
<conditions>
<add input="{HTTP_HOST}" negate="true" pattern="^www\."/>
</conditions>
<action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" appendQueryString="true" redirectType="Permanent"/>
</rule>
</rules>
</rewrite>
</system.webServer>
Intellisense会抱怨它不是一个公认的元素,但在编辑文件时这只是一个整容问题。
答案 1 :(得分:0)
通过查看门户网站(阅读部署详细信息)或只是ping您的.cloudapp.net地址,即可轻松获得VIP地址。您可以设置A记录,但是如果删除部署,则必须准备更新该记录。删除部署后,VIP地址将返回到池中,几乎可以保证您将在下次部署时获得新的VIP地址。
您可以使用升级功能维护您的VIP地址,而不是使用新部署。这有一些限制,但它适用于广义上不会改变服务定义的更新。
我们曾经说过,即使你做了更新,也无法保证VIP地址,但MS已经回来了更强的语言保证。 See here
答案 2 :(得分:0)
CNAMES仅适用于子域,例如sub.example.com或www.example.com,换句话说,您无法为example.com注册CNAME。如果您的域名提供商支持,您可以创建从example.com到www.example.com的重定向,然后为www.example.com创建CNAME记录,CNAME将匹配www.example.com与example.cloudapp.net。我的域名提供商有一个网络控制台,我可以轻松地完成这项工作,也许你的网站也可以吗?