Перенаправьте запросы без www на www на Amazon Route 53

44

Я хочу перенаправить все запросы с example.comна www.example.com.

Желательно, чтобы это происходило на уровне DNS. Я попытался использовать записи PTR, но это просто не удается, возвращая 404.

wwww.example.com ALIAS для эластичного балансировщика нагрузки

Какой самый простой способ добиться этого?

Флавиан
источник
Что вы пробовали с записями PTR? Мне любопытно.
TRiG
@flavian автор попросил переписать DNS, а не переписать URL, и он сказал, что ему все равно, как выглядит URL.
pauska
4
@flavian ради тебя, ты сказал, что хочешь сделать перенаправление в DNS. Мой ответ объясняет, как это сделать в DNS. Если вы хотите перенаправить URL, вам нужно переписать URL. Это не имеет ничего общего с DNS.
pauska
Есть ли какая-то особая причина для этого? Я бы сделал это наоборот .
nyuszika7h
SAN в EV SSL.
Flavian

Ответы:

50

Если вы уже используете Route 53, вы можете использовать их собственный псевдоним «запись» для решения этой проблемы. При использовании стандартного DNS вы вообще не можете этого сделать, и вам нужно, чтобы веб-сайт отправлял 301 редирект. Конечно, вам все равно нужно отправить редиректы 301 или иметь дело с тем фактом, что некоторые запросы будут поступать без www (хотя вы должны отправлять 301 по причинам SEO).

Вероятно, самый простой способ сделать это - установить корзину S3 с именем пустого домена и настроить свойства корзины для перенаправления с example.com на www.example.com, а затем на маршруте 53 создать псевдоним для открытой доменное имя, которое указывает на эту корзину S3.

Из комментариев

Чтобы улучшить ответ, вот что мы сделали, чтобы это работало:

  • Настроить ведро - не имеет значения, как его зовут и должно разрешить публикацию.
  • В корзине нажмите Свойства и выберите статический хостинг. Нажмите перенаправить все запросы на другое имя хоста и введите сайт, на который вы хотите перейти трафик.
  • Скопируйте конечную точку имени сегмента и перейдите в размещенную зону на консоли Route53 и добавьте CNAME с псевдонимом No к URL-адресу, с которого необходимо перенаправиться, и вставьте конечную точку сегмента в качестве ее значения.
Майкл Хэмптон
источник
@ Майкл-Хэмптон поправьте меня, если я ошибаюсь, но корзина S3 перенаправляет только для голого доменного имени без пути, верно? Я правильно добавил корзину S3 для своего домена, но она перенаправляет только пустой домен и не перенаправляет все, что имеет путь. Я предполагаю, что переписать мод это путь?
Джон Хардинг
@JohnHarding Я не знаю. Я больше не пользуюсь большинством сервисов Amazon AWS, включая S3.
Майкл Хэмптон
2
Чтобы улучшить ответ, вот что мы сделали, чтобы заставить это работать: - Настроить корзину - не имеет значения, как она называется, и должна разрешить публикацию. - В корзине, нажмите свойства и выберите статический хостинг сайта. Нажмите перенаправить все запросы на другое имя хоста и введите сайт, на который вы хотите перейти трафик. - Скопируйте конечную точку имени сегмента и перейдите в размещенную зону на консоли Route53 и добавьте CNAME с псевдонимом No к URL-адресу, с которого необходимо перенаправиться, и вставьте конечную точку сегмента в качестве ее значения.
NathanQ
4
Это работает только для http запросов, так как S3 не поддерживает https. Запросы на https://example.comпровал.
Гарри Кинг
к сожалению, для https://example.comперенаправления https://www.example.comвам нужно настроить другой облачный фронт, указывающий на корзину со статическим http-перенаправлением на www.example.com. Стоит отметить, что вам нужно добавить домен apex в CNAMEполе в конфигурации
облачного
6

Для псевдонима DNS вам просто нужно добавить запись CNAME или A в DNS. Смотрите мой ответ здесь: Как мне перенаправить www на не-www в Route53?

Для перезаписи URL (например, при перенаправлении клиентов на другой адрес) вам нужна логика перезаписи URL, выполняемая на веб-сервере. Есть несколько способов сделать это, и это зависит от того, какой веб-сервер вы используете. Наиболее популярным является использование mod_rewrite с apache. Этот сайт изобилует вопросами mod_rewrite, несколько запросов должны получить то, что вы хотите.

pauska
источник
Я использовал CNAME на моем внутреннем bind9 srv ровно час назад, но результаты не такие, как при перезаписи URL. При вводе этого CNAME в адресную строку браузера вы получаете именно этот URL, он не меняется на URL, на который указывает CNAME. Я сейчас использую apache mod_rewrite, отправляю 301, когда нет www. приставка.
Китет
3
Ответ связывание для отправки www.domain.comв domain.com. Этот вопрос об обратном. Ваше решение об использовании CNAMEили Aзаписи работает для отправки domain.comна www.domain.com?
Карл Г
4

Вы можете сделать это с помощью ведра s3. Шаги наклеены ниже:

Шаг 1. Создайте ведро s3.

Шаг 2. Сделать ведро как статический хостинг с редиректом.

Шаг 3. Измените запись AWS Route 53 для домена без www.

A - Адрес IPv4 -> Псевдоним Да -> Цель псевдонима (Выберите конечную точку сегмента s3 из раскрывающегося списка).

Шаг 4. Сохраните набор записей.

Арунлал Ашок
источник
0

AWS Route53 в настоящее время не предоставляет поддержку для перенаправления того, что в настоящее время известно как запись APEX (корневой домен), на другое доменное имя, хотя они работают над решением.

Я добился этого, создав запись A (псевдоним), которая указывает мой корневой домен (devopsfolks.com) на IP-адрес моего решения, размещенного на WP ... И ответ - да, если IP-адрес изменится, вам понадобится изменить псевдоним. Однако провайдер гарантировал мне, что IP-адрес является фиксированным, если только им не нужно выполнять некоторые виды аварийного восстановления и менять оборудование, и в этом случае они объединят прокси-сервер для выполнения перенаправлений, предоставляя клиентам 45 дней для изменения их сопоставления.

Марко Тедоне
источник
5
А не означает псевдоним, это означает адрес. И вы можете легко выполнить перенаправление с помощью Route 53, используя метод S3 bucket, показанный выше.
Майкл Хэмптон
«Они работают над решением», было ли какое-либо обновление по этому поводу?
Том