Я в настоящее время выпускаю следующую проблему и, черт возьми, я не могу решить ее. > 20 похожих тем, которые я нашел с Google, не помогают.
Прежде всего, я создал простое перенаправление HTTP на HTTPS, которое выглядит так:
server {
listen 80;
server_name my-domain.com;
return 301 https://my-domain.com$request_uri;
}
server {
listen 443 ssl http2;
server_name my-domain.com;
...
}
И это прекрасно работает. Если я попытаюсь открыть my-domain.com, я буду перенаправлен на https:// my-domain.com. Но есть проблема с поддоменами. Если я открою www.my-domain.com или test.my-domain.com, я бы хотел, чтобы эти субдомены перенаправили на мой корневой домен HTTPS : https:// my-domain.com. Без каких-либо поддоменов перед ним. То же самое должно появиться для поддоменов HTTPS. Я буквально хочу забанить любые субдомены (пока).
Я перепробовал множество конфигураций, таких как добавление * .my-domain.com к server_name, и все же это не работает, как ожидалось. Я также попытался создать перенаправление HTTPS с * .my-domain.com на мой обычный домен HTTPS, и все же у меня был похожий результат с каждой конфигурацией:
- Все запросы HTTP приводят к URL-адресу HTTPS, содержащему поддомен.
- Все HTTPS-запросы никогда не приводят к URL-адресу HTTPS БЕЗ субдомена.
Теперь мой вопрос: Как я могу перенаправить каждый субдомен (http и https) на определенный URL-адрес https, в котором нет субдомена? Каждая комбинация всегда должна приводить к: https:// my-domain.com $ request_uri
заранее спасибо
Обновить:
Не решил мою проблему полностью, но у меня есть кое-что, с чем я могу жить. Я создал CNAME от www.my-domain.com до my-domain.com в конфигурации моего домена. Я также изменил nginx и добавил новую конфигурацию сервера, которая перенаправляет с 443 www.my-domain на https:// my-domain. У меня также есть обычный сервер порта 80, который также перенаправляет с www.my-domain на https:// my-domain. Я изменил свой сертификат и добавил www.my-domain в список доменов и поддоменов. Теперь каждый запрос на www.my-domain(http или https) будет перенаправляться на https:// my-domain. Также my-domain(http и без www.) Будет также перенаправлять на https:// my-domain. Это кажется "хорошо" для моих нужд.