Nginx

nginx 重定向或返回單個位置

  • August 5, 2021

我正在嘗試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;
}

我已經在我的可用站點中設置了它,並啟用了它(當然,設置了 DNS)。不幸的是,當我導航到網址http://videos.mydomain.com/kickboxing>或<http://videos.mydomain.com/classes時,我得到的只是 404 網址。如果我將該return 404行更改為其中return 301一行,那麼它將適當地重定向,但適用於該特定 url。似乎沒有正確辨識這些location部分。

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

server級別的重寫之前處理級別重寫location

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

   location / {
       return 404;
   }

引用自:https://serverfault.com/questions/1073641