Когда дело доходит до управления DNS и веб-трафиком, Amazon Route 53 – популярный выбор среди разработчиков и системных администраторов. Однако по умолчанию Route 53 не перенаправляет субдомен www автоматически на версию веб-сайта без www. В этой статье мы рассмотрим несколько методов достижения этого перенаправления и обеспечения согласованного и унифицированного взаимодействия с пользователем. Мы предоставим примеры кода для каждого метода, чтобы помочь вам легко реализовать перенаправление.
Метод 1: перенаправление веб-сайта корзины S3
Один из подходов к перенаправлению веб-сайтов с www на без www на маршруте 53 заключается в использовании функции хостинга веб-сайтов корзины Amazon S3. Вот как это можно сделать:
- Создайте корзину S3 с тем же именем, что и у вашего домена, отличного от www (например, example.com).
- Включить статический хостинг веб-сайтов для сегмента.
- Добавьте файл index.html с правилом перенаправления, чтобы перенаправлять все запросы с www.example.com на example.com.
- Настройте маршрут 53, чтобы указать субдомен www на корзину S3.
Пример кода для index.html:
<html>
<head>
<meta http-equiv="refresh" content="0; url=https://example.com" />
</head>
<body></body>
</html>
Метод 2: функция Lambda@Edge
Другой метод предполагает использование функции AWS Lambda, связанной с базой раздачи Amazon CloudFront. Вот обзор шагов:
- Создайте функцию Lambda@Edge, которая перехватывает входящий запрос и выполняет перенаправление 301 с www.example.com на example.com.
- Свяжите функцию Lambda с дистрибутивом CloudFront, настроенным для обработки трафика вашего веб-сайта.
- Обновите запись Route 53, чтобы указать субдомен www на дистрибутив CloudFront.
Пример кода функции Lambda@Edge (Node.js):
exports.handler = async (event) => {
const request = event.Records[0].cf.request;
const host = request.headers['host'][0].value;
const redirectUrl = `https://${host.replace('www.', '')}${request.uri}`;
return {
status: '301',
statusDescription: 'Moved Permanently',
headers: {
location: [{ key: 'Location', value: redirectUrl }],
},
};
};
Метод 3: настройка веб-сервера
Если у вас есть веб-сервер, работающий по маршруту 53, вы можете добиться перенаправления через настройку сервера. Вот пример использования файла .htaccess
Apache:
- Создайте или измените файл
.htaccess
в корневом каталоге документов вашего веб-сервера. - Добавьте следующие директивы для перенаправления с www.example.com на example.com:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
- Убедитесь, что ваш веб-сервер настроен на чтение
.htaccess
файлов.
Перенаправление поддомена www на версию вашего веб-сайта без www имеет решающее значение для поддержания постоянного присутствия в Интернете и улучшения SEO. В этой статье мы рассмотрели три метода достижения такого перенаправления в Amazon Route 53: перенаправление веб-сайта корзины S3, функцию Lambda@Edge и настройку веб-сервера. Каждый метод обеспечивает гибкость в зависимости от ваших конкретных настроек и требований. Внедрив один из этих методов, вы можете гарантировать, что ваши посетители всегда попадут на нужную версию вашего веб-сайта, что повысит удобство использования и видимость в поисковых системах.