Nginx

通過 nginx 進行 302 重定向的屏蔽連結不起作用

  • February 22, 2021

我試圖掩蓋一個附屬連結,所以我想通過 nginx 進行 302 重定向

我想將所有/go連結重定向到相應的附屬連結,因此所有連結重定向都類似於mydomain.com/go/affiliate重定向到 >https://www.affiliatelink.com

現在這就是我所擁有的

location /go {
               rewrite ^/affiliate$ https://www.affiliatelink.com redirect; 
    }

我已經嘗試了一切,但我似乎無法讓它工作。有沒有我需要做的特定文件?

我已經嘗試/sites-enabled/default/conf.d/nginx.conf

您的重寫不起作用,因為您請求的 URL 路徑/go/affiliate只是rewrite確切路徑上的匹配項,無論如何/affiliate都找不到。location /go解決這個問題是微不足道的,但出於性能原因,您應該盡可能避免使用正則表達式。

而不是這種rewrite,使用兩種替代方法之一:

  1. 如果您只有幾個 URL 路徑要匹配,location請為每個路徑使用 a:
location /go/affiliate {
   return 302 https://affiliate.example.com/;
}
  1. 如果您有大量連結,我會說超過 7 個左右,請使用 amap代替。
map $uri $aff_redirect {
   default            "";
   "/go/affiliate"    "https://affiliate.example.com/";
   # more links
}

Amap進入http任何塊之外的server塊。

要使用它,請檢查$aff_redirect相應server塊中的變數。

if ($aff_redirect) {
   return 302 $aff_redirect;
}

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