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