一个链接到我的网站的网站最近从 http 更改为 https。在此之前,我的 apache access_log 中出现了来自其链接的命中,这是意料之中的 - 但情况不再如此。我现在看到网页加载产生的命中,但没有看到初始网页命中本身。我自己测试该网站的链接证实了这一行为 - 初始命中未被记录。
怎么解释这个?我如何再次记录初始点击(我使用它的 referer 字段来跟踪来自该网站的访问)?在日志中我确实看到了来自其他 https 网站的 referer - 但不是来自这个特定网站。仅供参考,我的 apache 配置非常标准。我这边没有任何变化,来自其他网站的点击也按预期出现。尝试使用“LogLevel debug”获取更多信息确实给了我发现有用的信息。
杰克
附言:我假设更改为 https 是原因,因为这是显而易见的变化 - 但也许该网站还做了我不知道的其他更改。另外,我确实安装了 modsecurity,但在其日志中看不到与此相关的任何内容。
答案1
推荐人信息是从未发送在这种情况下。当引用站点是 HTTPS 时,浏览器将拒绝向 HTTP URL 发送 Referer 标头。
如果您想再次获取引荐来源信息,您需要将您的网站移至 HTTPS,并让引荐网站更新其链接,使其指向 HTTPS 而不是 HTTP。
答案2
您的问题不太清楚...但我想我明白您的问题了。
您说您已经检查了来自其他网站的访问。在 Web 浏览器中加载他们的页面,打开开发人员工具和网络信息。然后单击您的链接。您应该看到生成了一个请求,并且您应该能够看到请求和响应 - 标头和实际请求。
从这些信息中,您应该能够知道发生了什么变化。链接可能不再以您期望的方式直接转到您的网站,而是通过跟踪机制。无论如何,您应该能够看到请求、响应和所有标头。
除非您特意禁用了某些功能或实施了某种日志过滤,否则您应该会在日志中看到到达服务器的所有请求。由于您没有更改这一点,因此您应该认为它仍在那里。我猜它不是您想象的那样。
在某些浏览器配置中,缓存的网页无需与原始服务器核对即可提供。这是另一种可能性,但您应该会在网络信息视图中看到响应已缓存。
从您在评论中发布的附加信息中,您可以看到您的页面所需的资源正在加载,并且正在由您期望的页面(来自 Referere 字段)加载,但您没有该页面的初始请求的日志。
尝试在禁用缓存的情况下发出页面请求(再次使用开发人员工具选项卡的网络视图禁用缓存)。如果您可以设置正确的标头,则可以禁用该页面的缓存,但是您不能强迫客户端遵守这一点,但您应该合理地期望最终客户端遵守 Cache-Control: 标头。理想情况下,应在服务器上将其设置为标头,而不是使用元标记。
根据 Michael 的回答,如果您需要 Referer 标签,您可能也会遇到问题。