Nginx-Umleitung oder Rückgabe eines einzelnen Standorts

Nginx-Umleitung oder Rückgabe eines einzelnen Standorts

Ich versuche, videos.mydomain.com/kickboxingeine Weiterleitung zu einem YouTube-Link zu erhalten, sowie videos.mydomain.com/classeseine Weiterleitung zu einemandersYouTube-Link. (Dies sind beides nicht aufgeführte Wiedergabelisten, und ich möchte, dass diese Weiterleitung automatisch für alle erfolgt, die Zugriff auf unsere Website haben. Dies ist Schritt 1 von mehreren Konfigurationsschritten, und ich kriege es einfach nicht hin, dass es funktioniert.)

Hier ist meine Konfiguration:

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

Ich habe dies in meinen verfügbaren Sites eingerichtet und aktiviert (und natürlich DNS eingerichtet). Leider, wenn ich zu den URLs navigierehttp://videos.mydomain.com/kickboxingoderhttp://videos.mydomain.com/classes, alles was ich bekomme ist die 404-URL. Wenn ich die return 404Zeile in eine der return 301Zeilen ändere, wird sie entsprechend umgeleitet, abernurfür diese bestimmte URL. Die Abschnitte scheinen nicht richtig identifiziert zu werden location.

Antwort1

Dies geschieht, weil Sie return 404;den serverBlock eingefügt haben.

Umschreibungenauf der serverEbene werden verarbeitetVorUmschreibungen auf dieser locationEbene.

Um das Problem zu beheben, fügen Sie es in ein ein location. (Als allgemeine Regel sollten Sie Anfragen immer in einem verarbeiten location.)

    location / {
        return 404;
    }

verwandte Informationen