需要帮助了解 Coldfusion URL 推荐

Need help understanding Coldfusion URL Referral

我有一个 ColdFusion 站点,我需要在该站点上根据用户到达页面的方式显示不同的文本。

<cfif user comes from sitemap.cfm>
    Display this text
<cfelse>
    display this text
</cfif>

有人能给我指出正确的方向吗?

您想查看 CGI 环境变量,特别是 HTTP_REFERER(不,这没有拼错——或者,我应该说,CGI 变量的名称拼错了)。

我相信 HTTP_REFERER 的值将包含整个 URL,包括查询字符串,因此您必须解析它——或者可能使用 CONTAINSfindNoCase() 在你的 <cfif> 语句中:

<cfif findNoCase("sitemap.cfm", cgi.HTTP_REFERER)>
    Display this text
<cfelse>
    display this text
</cfif>

重要的是要注意,如果您要从 HTTPHTTPSHTTP_REFERER 的值将为空,我相信反之亦然。

使用 CGI.HTTP_REFERERDavid Faber 提到的一种可能的解决方案。这是最简单的方法,我会推荐它。

如果您出于某种原因不信任或不能信任 CGI.HTTP_REFERER 值,那么另一种解决方案是对您的用户(更准确地说是他的 http 请求)实施一种跟踪。例如你可以:

  • Session 范围(而不是 Request 范围)中使用(键,值)例如通过在 Application.cfm 中的 onRequestStart(String targetPage) 中实现它(或直接在 sitemap.cfm 中?)。然后根据 targetPage 值和你的 SESSION[key] 值做你需要或想做的事。
  • 使用相同的技术,但使用 COOKIE 范围(或使用 cfcookie ?)。取决于 http 请求工作流程...

我认为可能还有其他跟踪技术,这取决于您:-)