HTML Meta 重定向:为什么 Referer 只显示域名?
HTML Meta 重定向:为什么 Referer 只显示域名?
在使用 <meta http-equiv='refresh' content='0; url=https://www.example.com/new-page'> 进行页面重定向时,你可能会发现跳转后的页面接收到的 Referer HTTP 头信息只包含域名 (例如 'https://www.example.com/'), 而不包含原始页面的完整路径。
原因:
这是因为 meta 重定向实际上是在服务器端进行的。当浏览器接收到包含 meta 重定向的 HTML 代码时,它会读取重定向指令并向新 URL 发送请求。在这个过程中,浏览器不会将原始页面的完整路径传递给新页面,只传递域名。
解决方案:
如果你需要在跳转后的页面获取原始页面的完整路径,可以考虑以下两种方法:
-
使用 JavaScript 跳转:
// 将 'https://www.example.com/new-page?referrer=' + encodeURIComponent(document.referrer) // 替换为你想要跳转到的 URL window.location.href = 'https://www.example.com/new-page?referrer=' + encodeURIComponent(document.referrer);这种方法通过 JavaScript 获取当前页面的完整路径 (document.referrer),并将其作为参数附加到新 URL 中。
-
在服务器端进行重定向:
如果你使用的是服务器端语言 (如 PHP、Python、Node.js 等), 可以在服务器端实现 301 或 302 重定向,并在响应头信息中设置 Referer 字段为原始页面的完整路径。
总结:
使用 meta 重定向会导致 Referer 只包含域名。如果需要获取完整路径,可以使用 JavaScript 跳转或在服务器端进行重定向。
原文地址: https://www.cveoy.top/t/topic/jx2l 著作权归作者所有。请勿转载和采集!