Nginx
通過 nginx 進行 302 重定向的屏蔽連結不起作用
我試圖掩蓋一個附屬連結,所以我想通過 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
,使用兩種替代方法之一:
- 如果您只有幾個 URL 路徑要匹配,
location
請為每個路徑使用 a:location /go/affiliate { return 302 https://affiliate.example.com/; }
- 如果您有大量連結,我會說超過 7 個左右,請使用 a
map
代替。map $uri $aff_redirect { default ""; "/go/affiliate" "https://affiliate.example.com/"; # more links }
A
map
進入http
任何塊之外的server
塊。要使用它,請檢查
$aff_redirect
相應server
塊中的變數。if ($aff_redirect) { return 302 $aff_redirect; }