Перенаправлення не-www запитів на www на Amazon Route 53


44

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

Переважно, це має відбуватися на рівні DNS. Я спробував використовувати записи PTR, але це просто не вдалося, повернувши 404.

wwww.example.com є АЛІАС для балансира еластичного навантаження.

Який найпростіший спосіб досягти цього?


Що ви спробували із записами PTR? Мені цікаво.
TRiG

@flavian плакат попросив переписати DNS, а не переписати URL, і він спеціально сказав, що йому все одно, як виглядає URL.
pauska

4
@flavian ради f, ви сказали, що хочете зробити переадресацію в DNS. Моя відповідь пояснює, як це зробити в DNS. Якщо ви хочете перенаправити URL, то вам потрібно переписати URL. Це не має нічого спільного з DNS.
pauska

Чи є якась конкретна причина для цього? Я би зробив це навпаки .
nyuszika7h

SAN в EV SSL.
флавіан

Відповіді:


50

Якщо ви вже використовуєте Маршрут 53, ви можете використовувати їх фірмовий псевдонім "запис" для вирішення цієї проблеми. Зі стандартним DNS ви цього взагалі не можете зробити, і вам потрібно, щоб веб-сайт надсилав переадресацію 301. Звичайно, вам все одно потрібно надіслати переадресацію 301 або розібратися з тим, що деякі запити надходять без www (хоча вам слід надіслати 301 з SEO-причин).

Мабуть, найпростіший спосіб зробити це - встановити відро S3 з іменем голого домену та налаштувати властивості відра для переадресації з example.com на www.example.com, а потім у маршруті 53 створити псевдонім для голих доменне ім’я, яке вказує на це відро S3.

З коментарів

Щоб покращити відповідь, ось що ми зробили для роботи:

  • Налаштування відра - не має значення, як його звуть, і він повинен дозволити публіці.
  • У відрі натисніть "Властивості" та натисніть статичний хостинг веб-сайтів. Клацніть переспрямувати всі запити до іншого імені хоста та введіть сайт, на який потрібно перейти.
  • Скопіюйте кінцеву точку імені відра та перейдіть до розміщеної зони на консолі Route53 та додайте CNAME з псевдонімом No до URL-адреси, з якого потрібно переадресувати, і вставте кінцеву точку відра як його значення.

@ michael-Hammpton виправте мене, якщо я помиляюся, але відро 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. Варто згадати, що вам потрібно додати вершину домену в CNAMEполе у ​​вашій обласній конфігурації
tuhaj

6

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

Для перезапису URL-адрес (як і для перенаправлення клієнтів на іншу адресу) тоді вам потрібна певна форма логіки перезапису URL-адрес, виконана на веб-сервері. Існує кілька способів зробити це, і це залежить від того, який саме веб-сервер ви використовуєте. Найпопулярнішим є використання mod_rewrite з apache. Цей сайт пронизаний питаннями mod_rewrite, кілька пошукових запитів повинні отримати те, що ви хочете.


Я використовував CNAME на своєму внутрішньому bind9 srv рівно годину тому, але результати не такі, як у перезаписі URL-адреси. Вводячи цей CNAME в адресний рядок браузера, ви отримуєте саме таку URL-адресу, вона не змінюється на URL-адресу, на який вказує CNAME. Зараз я використовую apache mod_rewrite, надсилаю 301, коли немає www. префікс.
Kitet

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 (кореневий домен) на інше доменне ім’я, хоча вони працюють над рішенням.

Я домігся цього, створивши запис (псевдонім), який вказує мій кореневий домен (devopsfolks.com) на IP-адресу мого рішення, розміщеного WP ... І відповідь "так", якщо IP зміниться, то вам знадобиться щоб змінити псевдонім. Однак провайдер гарантував мені, що IP-адресу зафіксовано, якщо їм не доведеться виконувати якісь види відновлення після аварій і змінити обладнання, і в такому випадку вони зберуть проксі-сервер для виконання перенаправлень, надаючи клієнтам 45 днів для зміни свого відображення.


5
A не означає псевдонім, це означає адресу. І ви можете легко зробити переспрямування з маршруту 53, використовуючи метод відра S3, показаний вище.
Майкл Хемптон

"Вони працюють над рішенням", чи було якесь оновлення щодо цього?
Том
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.