这就是我所寻找的:
如果引荐来源包含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 临时重定向,但您需要考虑所有细节。