Apache Velocity:$request.getHeader('referer') 给出意外结果
Apache Velocity: $request.getHeader('referer') giving unexpected results
在我的 404 错误页面上,我想显示 referer URL 然后用它来 运行 搜索以尝试找到正确的页面。
在我的 header Velocity 模板文件中,我使用
$response.sendRedirect("$link.requestBaseURL/404_page_not_found_7_293?t=$date.getSystemTime()")
在用户尝试访问 old-style 页面时将用户引向 404 页面(这些旧页面不再打算访问,但其中一些可能仍被索引 Google).
在 404 页面本身,我正在使用
#set($referrer = $request.getHeader('referer'))
获取引荐来源网址,但不是显示将用户引荐至 404 页面的页面的 URL,而是显示他们之前访问的页面的 URL!例如,如果您转到该站点的主页,然后单击转发到 404 页面的损坏的 link - 引用者作为主页给出,而不是损坏的 link。
如何获得正确的 referer?
重定向不会更改 Referer header。即使在 HTTP 1.1 RFC 中没有明确说明,这也是大多数浏览器的政策。
您最好的选择是将错误的 URL 作为损坏页面本身的查询参数传递。
在我的 404 错误页面上,我想显示 referer URL 然后用它来 运行 搜索以尝试找到正确的页面。
在我的 header Velocity 模板文件中,我使用
$response.sendRedirect("$link.requestBaseURL/404_page_not_found_7_293?t=$date.getSystemTime()")
在用户尝试访问 old-style 页面时将用户引向 404 页面(这些旧页面不再打算访问,但其中一些可能仍被索引 Google).
在 404 页面本身,我正在使用
#set($referrer = $request.getHeader('referer'))
获取引荐来源网址,但不是显示将用户引荐至 404 页面的页面的 URL,而是显示他们之前访问的页面的 URL!例如,如果您转到该站点的主页,然后单击转发到 404 页面的损坏的 link - 引用者作为主页给出,而不是损坏的 link。
如何获得正确的 referer?
重定向不会更改 Referer header。即使在 HTTP 1.1 RFC 中没有明确说明,这也是大多数浏览器的政策。
您最好的选择是将错误的 URL 作为损坏页面本身的查询参数传递。