Nginx

如何根據不同的引薦來源重定向我的網站?

  • August 28, 2022

這就是我要找的:

如果引用者包含https://l.facebook.com/,則將所有頁面重定向到sub.example.com/...

如果引用者包含https://t.co/,則將所有頁面重定向到sub2.example.com/...

我如何在我的 nginx conf 中做到這一點?

這種方法應該有效:

map $http_referer $redirect_referer {
   ~ ^https://l.facebook.com sub.example.com;
   ~ ^https://t.co sub2.example.com;
   default 0;
}

server {
   server_name example.com;

   if ($redirect_referer) {
       return 301 https://$redirect_referer$request_uri;
   }
   ...
}

$redirect_referer首先,我們定義一個基於 HTTP Referer 欄位內容分配值的映射。

然後在server塊中我們檢查是否應該重定向,然後我們執行 301 重定向到目的地。在這種情況下,您可能希望使用 302 臨時重定向,但您需要考慮所有細節。

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