如何根据不同的引荐来源重定向我的网站?

如何根据不同的引荐来源重定向我的网站?

这就是我所寻找的:

如果引荐来源包含https://l.facebook.com/,则将所有页面重定向至sub.example.com/...

如果引荐来源包含https://t.co/,则将所有页面重定向至sub2.example.com/...

我该如何在我的 nginx 配置中做到这一点?

答案1

这种方法应该有效:

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 临时重定向,但您需要考虑所有细节。

相关内容