Windows Azure:如何为域的301非www url到www

时间:2011-07-19 12:19:25

标签: asp.net windows asp.net-mvc-3 azure dns

我最近部署了一个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解决了这个问题。

3 个答案:

答案 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,换句话说,您无法为exa​​mple.com注册CNAME。如果您的域名提供商支持,您可以创建从example.com到www.example.com的重定向,然后为www.example.com创建CNAME记录,CNAME将匹配www.example.com与example.cloudapp.net。我的域名提供商有一个网络控制台,我可以轻松地完成这项工作,也许你的网站也可以吗?