nginx redireciona ou retorna local único

nginx redireciona ou retorna local único

Estou tentando videos.mydomain.com/kickboxingredirecionar para um link do YouTube, bem como videos.mydomain.com/classesredirecionar para umdiferenteLink do YouTube. (Ambos são listas de reprodução não listadas e quero que qualquer pessoa que tenha acesso ao nosso site faça com que esse redirecionamento aconteça automaticamente para eles. Esta é a etapa 1 de várias etapas de configuração e não consigo fazê-lo funcionar).

Aqui está minha configuração:

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

Eu configurei isso em meus sites disponíveis e também ativei (e, claro, configurei o DNS). Infelizmente, quando navego para os URLshttp://videos.meudominio.com/kickboxingouhttp://videos.meudominio.com/classes, tudo que recebo é o URL 404. Se eu mudar a return 404linha para uma das return 301linhas, ela será redirecionada apropriadamente, masapenaspara esse URL específico. Parece não estar identificando corretamente as locationseções.

Responder1

Isso acontece porque você colocou return 404;o serverbloco.

Reescreveno servernível são processadosantesreescreve no locationnível.

Para resolver o problema, coloque-o em um arquivo location. (Como regra geral, você deve sempre processar solicitações em um arquivo location.)

    location / {
        return 404;
    }

informação relacionada