nginx redirige o devuelve una ubicación única

nginx redirige o devuelve una ubicación única

Estoy intentando videos.mydomain.com/kickboxingredirigir a un enlace de YouTube, así como videos.mydomain.com/classesredirigir a undiferenteEnlace de YouTube. (Ambas son listas de reproducción no listadas, y quiero que cualquier persona que tenga acceso a nuestro sitio web tenga esta redirección automáticamente. Este es el paso 1 de varios pasos para configurar esto y parece que no puedo hacerlo funcionar).

Aquí está mi configuración:

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;
}

Configuré esto en mis sitios disponibles, y también lo habilité (y, por supuesto, configuré DNS). Desafortunadamente, cuando navego a las URLhttp://videos.midominio.com/kickboxingohttp://videos.midominio.com/classes, todo lo que obtengo es la URL 404. Si cambio la return 404línea a una de las return 301líneas, se redireccionará apropiadamente, perosolopara esa URL en particular. Parece no identificar correctamente las locationsecciones.

Respuesta1

Esto sucede porque pones return 404;el serverbloque.

Reescribea servernivel se procesanantesreescribe en el locationnivel.

Para solucionar el problema, colóquelo en un archivo location. (Como regla general, siempre debe procesar las solicitudes en formato location.)

    location / {
        return 404;
    }

información relacionada