Windows Azure: как 301 URL-адрес не www для www для домена

Недавно я развернул приложение Windows Azure и настроил DNS своего домена через портал DreamHost. Теперь мой сайт доступен через http://www.coziie.com, но не через адрес не-www.

Я прочитал в одной из статей, что я должен добавить запись A в настройках DNS и указать на virutal IP для Windows Azure. Как получить вирусный IP-адрес моего развертывания Windows Azure?

Или существует ли какой-либо лучший способ 301 перенаправить все URL-адреса, отличные от www, на www?

RESOLVED. Я смог решить эту проблему, просто настроив параметры перенаправления веб-сайта в настройках DNS DreamHost. Простой 301-редирект http://coziie.com на www.coziie.com разобрал проблему.

Ответ 1

Здесь вы говорите о двух отдельных проблемах.

Во-первых, нужно настроить запись DNS, чтобы ваш неканонизированный URL-адрес работал. Второй - перенаправить URL-адрес, если к нему обращается сайт.

update Я удалил предыдущий совет для CNAME здесь, поскольку я не знал, что вы не можете установить корневой домен в запись CNAME. Похоже, что с ip-ограничениями Azure вам придется указывать запись корневого домена на не-лазурном, asp.net-хостинге, а затем переадресовать 301 (например, дальше мой ответ), чтобы отправить его на Azure домен (домен www).

Когда у вас есть http://coziie.com/, указывающий на ваш сайт и обслуживающий страницу, тогда нужно исправить это, потому что Google может запутаться, подумать о двух разных сайтах, а затем разбавьте свой ранг страницы между ними.

Хитрость заключается в настройке 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 будет жаловаться, что его не признанный элемент, но это просто косметическая проблема, когда вы редактируете файл.

Ответ 2

VIP-адрес легко получить, посмотрев на портал (прочтите сведения о развертывании) или просто проверив адрес .cloudapp.net. Вы можете установить запись A, но вы должны быть готовы обновить ее, если вы удалите развертывание. Как только вы удалите развертывание, VIP-адрес будет возвращен в пул, и в значительной степени гарантируется, что вы получите новый VIP-адрес при следующем развертывании.

Вы можете поддерживать свой VIP-адрес, используя функцию обновления, а не новые развертывания. Для этого существуют некоторые ограничения, но они работают для обновлений, которые не меняют Service Service в широком смысле.

Мы говорили, что VIP-адрес не был гарантирован, даже если вы сделали обновление, но MS вернулась с более сильным языком о гарантиях. Смотрите здесь.

Ответ 3

CNAMES предназначены только для субдоменов, таких как sub.example.com или www.example.com, вы не можете зарегистрировать CNAME для example.com другими словами. Если ваш провайдер домена поддерживает его, вы можете создать перенаправление с example.com на www.example.com, а затем создать запись CNAME для www.example.com, CNAME будет соответствовать www.example.com против example.cloudapp.net. У моего провайдера домена есть веб-консоль, где я могу сделать это легко, возможно, у вас тоже?