nginx 重定向或返回单个位置

nginx 重定向或返回单个位置

我正在尝试videos.mydomain.com/kickboxing重定向到 YouTube 链接,以及videos.mydomain.com/classes重定向到不同的YouTube 链接。(这两个都是未公开的播放列表,我希望任何有权访问我们网站的人都能自动进行此重定向。这是配置的几个步骤中的第 1 步,我似乎无法让它工作)。

这是我的配置:

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

我已经在 sites-available 中设置了它,并启用了它(当然,还设置了 DNS)。不幸的是,当我导航到 URL 时http://videos.mydomain.com/kickboxing或者http://videos.mydomain.com/classes,我得到的只是 404 网址。如果我将行更改return 404为其中一行return 301,那么它将正确重定向,但是仅有的对于该特定 URL。它似乎无法正确识别location部分。

答案1

发生这种情况是因为您放入return 404;server块。

重写server处理级别在级别上重写location

要修复此问题,请将其放入location. 中(一般来说,您应始终在 . 中处理请求location)。

    location / {
        return 404;
    }

相关内容