【问题标题】:Mock the CGI.HTTP_REFERER using Coldfusion使用 Coldfusion 模拟 CGI.HTTP_REFERER
【发布时间】:2025-11-26 08:35:02
【问题描述】:

我正在尝试为 Coldfusion 项目编写一些搜索引擎优化的代码,我想要完成的一件事是当页面从不同的搜索引擎引用时更改一些页面变量。

有谁知道是否有办法,或者是否可以将 CGI.HTTP_REFERER 模拟到 Google、Bing、Yahoo 等??

【问题讨论】:

标签: coldfusion http-referer


【解决方案1】:

重构您的方法,而不是直接使用 CGI 范围,而是使用参数,例如:

<cfargument name="cgiScope" type="struct" default="#CGI#" require="false">

完成。 :)

【讨论】:

    【解决方案2】:

    不赞成为搜索引擎机器人显示不同类型的内容。无论哪种方式,都无法使用 Coldfusion 更改 CGI.HTTP_REFERER。您最好的选择是编辑您的“主机”文件并添加一个条目以将 google.com 指向您的服务器的 IP(例如 127.0.0.1)并设置一个带有指向您的站点的链接的页面以伪造请求即将到来来自 Google/Bing/Yahoo。

    【讨论】:

    • 由于蜘蛛通常不报告引荐来源网址,因此这可能不会影响它们。
    【解决方案3】:

    CGI 范围的值很大一部分取决于请求标头中发送的内容。特别是引用者很容易被欺骗。请参阅以下内容:

    1. Ben Nadel explains how to with CFHTTP and CFHTTPPARAM to spoof the referer
    2. Firefox Plugin Modify Headers(我的评论指出了这个问题的答案)。

    【讨论】:

      【解决方案4】:

      我会创建一个通常返回 CGI.HTTP_REFERER 的函数 getHttpReferer,但是当您进行单元测试时,您可以模拟该函数以返回您想要的任何内容。

      【讨论】: