Как корректно собрать трафик со множества своих доменов

Ситуация: у вас по какой-то причине есть множество доменов, которые когда-то были сайтами или не были ими никогда. На всех этих доменах есть какой-то остаточный трафик, туда заходят просто любопытствующие или, возможно, вы намеренно занимались тайпсквоттингом и нарегистрировали похожих на gooogle и wkontakte имён. У меня вот таких доменов из прошлой жизни накопилось несколько десятков. Как собрать с них посетителей?
Глобально, проблем тут две:
люди заходят со странных диковинных страниц, никогда не существовавших или давно удаленных
люди обычно заходят по протоколу https, а не http.
Просто перебрасывать трафик с сохранением $request_uri не стоит, т. к. будут возникать 404 ошибки. Обработка таких ошибок у вас должна бы быть, но обычно это всё-таки какая-то заглушка, а не полноценная функциональная страница сайта, т. к. «обычная» страница вызовет еще больше вопросов и непонимания. Потому $request_uri нужно обязательно вырезать. Попал человек неизвестно откуда неизвестно как на титульную другого сайта — у него хотя бы есть стандартная удобная точка, откуда можно начать. Ну, или создайте отдельную страничку с пояснением, что рады его видеть, несмотря на конфуз.
Вы, возможно, удивитесь, но просто прописать в .htaccess через RewriteEngine новое правило явно недостаточно. Основной трафик идет по https, а если на домене нет нормального валидного сертификата, то из-за самоподписанного или отсутствующего сертификата браузер наверняка вывалит сообщение о потенциальной опасности и вообще откажется куда-либо переходить. Вы просто теряете посетителя. Абсолютное большинство посетителей. Именно из-за того, что весь современный интернет работает по https.
На своем сервере я установил FastPanel. Ее особенностью является то, что она ставит Nginx перед Apache. Это, вроде как, весьма распространенное явление: Nginx как frontend и Apache как backend. Картинки и другую статику сразу отдает быстрый Nginx, а замороченный контент оставляет более задумчивому и умному Apache.
Алгоритм:
1. все домены прописываем в alias сайта, на который хотим совершить редирект. Это должен быть дефолтный сайт на сервере. Всё равно именно с него вы рассылаете почту так, чтоб она не попадала сразу в спам у пользователей — это делается путём настройки всякого, скрывающегося за аббревиатурами SPF, PTR, DKIM, DMARC…
2. среди прочего, панельки вроде FastPanel удобны тем, что отслеживают, обновляют и автоматизируют много рутинных процессов. В частности, легко и просто устанавливается сертификат Let’s Encrypt. На этом шаге вы должны получить общий и единый сертификат Let’s Encrypt на все эти домены. Прямо списком все домены без «www.» и они же с «www.». Не пройдут домены на кириллице типа (аук.рф), а также любые домены в китайских зонах (.cn) и т. п. Домен должен быть достаточно благородным, чтоб Let’s Encrypt за него вписался :) Имеется ограничение на число этих доменов — до 100 штук на сертификат.
3. прописывать каждый домен отдельным сайтом не нужно. Достаточно, чтоб на IP сервера ссылались записи DNS этого домена.
4. в конфиге Nginx нашего дефолтного сайта, с которым связан IP на сервере и на который должен уйти трафик, нужно прописать жесткое правило для всех «посторонних» доменов:
server {
server_name полный_список_всех_посторонних_доменов_с_www_и_без;
listen your_IP:443 ssl;
return 301 https://your-site-url.ru;
…
Применительно к FastPanel, конфиг может быть здесь: /etc/nginx/fastpanel2/hosts/your-site-url.ru.conf или здесь: /etc/nginx/fastpanel2-available/your-site-url_ru_usr/your-site-url.ru.conf или здесь: /etc/nginx/sites-available/your-site-url.ru.conf При другом окружении всё равно сначала ищите в /etc/nginx/
Также поправим в паркинге (конфиг может быть здесь: /etc/nginx/conf.d/parking.conf или см. указанные выше директорьки):
# Отключаем логи для мусора, чтобы не забивать сервер
location = /favicon.ico { access_log off; log_not_found off; }
# Редирект ВСЕГО на корень вашего сайта без сохранения пути
location / {
return 301 https://your-site-url.ru;
}
Когда паркинг, а когда не паркинг? Паркинг срабатывает, когда на сервере не находится ваш домен. Если он прописан в alias дефолтного сайта, он должен найтись. Так, может, всех просто в паркинге ловить? Получить сертификат для ловли посетителей, приходящих через https, без alias будет замороченнее, а они — самая существенная часть вашего трафика. С другой стороны, некоторые домены просто не могут получить сертификат Let’s Encrypt — см. выше.
Благодарю за отзывы и комментарии! Надеюсь, мой персональный опыт кому-то сократит время на решение подобной задачи.