Почему перенаправления моих URL не работают без www? - PullRequest
3 голосов
/ 29 апреля 2020

Я хочу следующее перенаправление:

http://example.com -> http://www.example.com
example.com -> http://www.example.com
www.example.com -> http://www.example.com

В моей папке с именами я настроил две записи перенаправления URL:

CNAME Record        | www | appname.us-east-2.elasticbeanstalk.com.
URL Redirect Record |  @  | http://www.example.com                  | Unmasked 

Но все же я могу получить доступ только к http://www.example.com когда я на самом деле набираю этот полный URL. Когда я удаляю www then запрос истекает. Таким образом, URL-перенаправления, похоже, ничего не делают. Как правильно перенаправить мой полный http-домен?

Ответы [ 2 ]

3 голосов
/ 04 мая 2020

Вы можете сделать www.domain.com запись A и все другие имена доменов CNAMEs www.domain.com. Но это только «решает», что если IP-адрес www.domain.com меняется, вам не нужно изменять другой DNS запускается как псевдонимы.

Таким образом, на уровне DNS нет способа принудительного перенаправления. И на то есть веская причина, потому что DNS используется не только для HTTP. Например, если весь запрос на domain.com будет перенаправлен на www.domain.com, ваши адреса электронной почты изменится на user@www.domain.com.

Так что для перенаправления HTTP вам придется использовать решение HTTP. Это может быть на уровне веб-сервера (nginx, apache, et c.)

2 голосов
/ 07 мая 2020

Я использую NGINX, и я реализовал перенаправление следующим образом:

vi / etc / nginx / sites-enabled / example-com

server {
        listen 80;
        server_name example.com;
        return 301 https://www.example.com$request_uri;
}

server {
        listen 80;
        server_name www.example.com;
        root /var/www/html;
        index index.html index.htm;
}

Код состояния ответа 301 означает " Перемещено навсегда "и используется для перенаправления URL-адресов на постоянной основе.

Пожалуйста, не забудьте перезапустить NGINX.

sudo systemctl restart nginx
...