>_ IzzyLab

Практическое задание

Редирект www на без-www

средне

Настрой nginx (порт 80): запросы с хостом www.example.com должны получать 301-редирект на http://example.com (тот же путь). Запросы на example.com обслуживаются как обычно.

Что потренируешь:
  • nginx
  • server_name
  • return
  • 301 редирект
  • $request_uri

Разбор темы

Канонизация домена — приведение всех вариантов адреса (с www, без него) к одному главному, чтобы поисковики не считали их разными сайтами; для постоянного переезда используется код 301. В nginx запросы разводят по server-блокам на основе директивы server_name, сопоставляемой с заголовком Host. Мгновенный редирект без обращения к файлам делает директива return с кодом и целевым URL, а чтобы сохранить исходный путь и query-строку, в цель подставляют переменную $request_uri. В тестах заголовок Host подменяют флагом curl -H, что позволяет выбрать нужный блок без реального DNS.

Что проверяется

  1. www отдаёт 301-редирект
  2. Location ведёт на http://example.com

Как это выглядит