nginx перенаправляет или возвращает одно местоположение

nginx перенаправляет или возвращает одно местоположение

Я пытаюсь сделать videos.mydomain.com/kickboxingперенаправление на ссылку YouTube, а также videos.mydomain.com/classesперенаправление надругойСсылка на YouTube. (Это оба неперечисленных плейлиста, и я хочу, чтобы для всех, у кого есть доступ к нашему веб-сайту, это перенаправление происходило автоматически. Это первый из нескольких шагов по настройке, и у меня, похоже, не получается это сделать).

Вот моя конфигурация:

server {
  server_name videos.mydomain.com;
  root /var/www/www.mydomain.com;

  listen 80;
  access_log /var/log/nginx/videos.mydomain.com-access.log;
  error_log /var/log/nginx/videos.mydomain.com-error.log debug;

  location /classes {
    return 301 https://youtube.com/playlist?list=classes-playlist;
  }

  location /kickboxing {
    return 301 https://youtube.com/playlist?list=kickboxing-playlist;
  }

  return 404;
}

Я настроил это в своих сайтах-доступных, а также включил его (и, конечно, настроил DNS). К сожалению, когда я перехожу по URL-адресамhttp://videos.mydomain.com/кикбоксингилиhttp://videos.mydomain.com/classes, все, что я получаю, это URL 404. Если я изменю строку return 404на одну из return 301строк, то она будет перенаправлена ​​соответствующим образом, нотолькодля этого конкретного URL. Кажется, он неправильно идентифицирует locationразделы.

решение1

Это происходит потому, что вы ставите return 404;блок server.

Переписываетна serverуровне обрабатываютсядопереписывает на locationуровне.

Чтобы устранить проблему, поместите ее в location. (Как правило, вы всегда должны обрабатывать запросы в location.)

    location / {
        return 404;
    }

Связанный контент