前言

维护了一个网站,发展了一批代理商推广,对用PID方法来区分来源又防止吃大锅饭的方法一直没得时间研究,所以之前一直是通过暗鹾鹾的开个子站的简单方法。随着子站越来越多,维护难度加大,也不利于品牌统一建立,针对质量可控的渠道,还是有必要使用PID方式维护。

需求场景

业务网站如:sobaigu.com ,A代理商渠道 pid=a ,B代理商渠道 pid=b ,以此类推,他们的推广地址为:http://sobaigu.com/?pid=a 这种形式。
在这些渠道商中,某些渠道质量稳定,某些可能会存着作弊等,总之是想针对特定对象,能够进行单独的页面跟踪监控。
所以比如想跟踪代理商C的质量情况,那么:当遇到 pid=c 时,打开一个特定的 index-c.html ,其他则使用默认首页 index.html

实现方式

在nginx中添加如下配置:

1
2
3
if ($args ~* pid=c(&|$)) {
rewrite /index.html /index-c.html last;
}

以上代理,实现当遇到带 pid=c 参数请求时,将 index-c.html 中内容返回,其他更多条件可根据实际情况编写对应正则表达语法。如果套了cdn的话,那么需要将参数过滤功能关闭,否则将无效或者获取到的首页相互覆盖。

参考链接

  1. Nginx Location语法与简单配置
  2. nginx配置location总结及rewrite规则写法
  3. nginx配置url重写