一位联盟营销人员最近开始向我的网站发送奇怪的流量。
1) 访问者从联属网站的特殊位置访问我的网站,并执行 302 重定向到网站主页。
2) 访问者按照重定向到网站主页,在那里他们会收到另一个 302 重定向,然后消失。
日志的具体内容如下:
www.example.com 74.197.XX.XXX - - [20/Aug/2009:16:15:28 -0400] "GET /go HTTP/1.1" 302 298 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; Zune 2.0)"
www.example.com 74.197.XX.XXX - - [20/Aug/2009:16:15:28 -0400] "GET / HTTP/1.1" 302 460 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; Zune 2.0)"
当我亲自访问第一个 URL 时,我会被重定向,然后当我进入主页时,我会获得常规 HTML 内容,然后下载所有常见的页面资产(js/css/images 等)。
但是这些访问者,有数百个,每个都有不同的 IP 地址和用户代理等,都遵循这个奇怪的模式,即两个 302 重定向,然后噗的一声。
跟踪一些访问的引荐来源,流量来源看起来相当糟糕。典型的弹出式广告。
我主要关心的是,第二次 302 重定向对这些“访问者”有什么影响?我的服务器为什么会执行 302 重定向?
代码中唯一会导致从主页进行 302 重定向的情况是访问者禁用了 cookie。但在这种情况下,我会看到一系列请求,然后浏览器会因为“此站点的重定向方式永远无法完成”问题而超时。(基本上,如果我没有看到他们有站点 cookie,他们会被重定向以“刷新”会话,然后我才能看到 cookie。)
无论如何,所有 300 多名访客都不太可能禁用 cookie。
是否有任何外部影响可能导致我的服务器进行重定向? 有没有办法配置 apache 日志记录以包含 302 指向的位置?
答案1
我不知道您为什么会得到第二个 302,但我可以帮助您进行记录。
您可以尝试%{Location}o
格式字符串在一个日志格式记录 Location 响应标头的值。
LogFormat "%s %U -> %302{Location}o" redirect
CustomLog "/path/to/redirect_log" redirect
您可能希望使用“%>s”而不是“%s”来获取最终状态,或者同时使用两者。如果您可以在生成 302 响应时设置 REDIRECT 环境变量,则可以通过将“env=REDIRECT”附加到 CustomLog 指令来将重定向日志中的条目限制为仅重定向响应。
是否有任何重定向的访问者使用知名的浏览器?