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)。不幸的是,當我導航到網址時http://videos.mydomain.com/kickboxing或者http://videos.mydomain.com/classes,我得到的只是 404 url​​。如果我將該return 404行更改為其中一行return 301,那麼它將適當地重定向,但是僅有的對於該特定網址。它似乎沒有正確識別這些location部分。

答案1

發生這種情況是因為您放入return 404;server塊。

重寫在該server級別進行處理重寫水平location

要解決該問題,請將其放入location. (作為一般規則,您應該始終在 中處理請求location。)

    location / {
        return 404;
    }

相關內容