由于 ?gclid=,Google Adwords 出现 Codeigniter 404 错误

Posted

技术标签:

【中文标题】由于 ?gclid=,Google Adwords 出现 Codeigniter 404 错误【英文标题】:Codeigniter 404 error with Google Adwords due to ?gclid= 【发布时间】:2011-07-05 16:43:47 【问题描述】:

使用最新的 1.x (1.7.3) 版本的 CodeIgniter,我在 Google Adwords 的 gclid 上收到 404 错误。 我的理解是这是因为“?”在 Google Adwords 添加的网址中。我已经在网上阅读了很多答案,包括这里,但我找不到任何具体的答案。

最常见的是将配置文件编辑为:

$config['uri_protocol'] = "PATH_INFO";
$config['enable_query_strings'] = FALSE;

这解决了 gclid 问题但杀死了我所有的其他链接。换句话说,myDomain.com/something/here/there 之类的链接将不再有效。

我还看到了说编辑 .htaccess 的解决方案,但大多数似乎是通过重定向禁用谷歌正确跟踪的解决方法。

所以我的问题是:什么是允许 gclid 通过的正确方法以及为什么这是一个好方法?

【问题讨论】:

“使用 Codeigniter 的最新 1.x 版本...”这可能是个问题,因为最新版本是 2.x 我确信在 1.x 中可以解决这个问题。这不是一个新问题... 只是指出您提出问题的方式存在冲突,保持软件更新绝不是一个坏主意。 昨晚我刚刚将一个“大”旧网站从 1.7 升级到 2.0.2,同时等待我的冷冻披萨煮熟,并且有空闲时间。 @Stephane - 这绝对值得,而且非常简单。如果没有其他原因,能够正确使用$_GET。旧的 CI“查询字符串”总是让我感到困惑,因为它们的实际目的是什么...... @StephaneGrenier:用户指南:codeigniter.com/user_guide/changelog.html UG有升级说明,包含在首页下载中。 【参考方案1】:

使用实际最新版本的codeigniter,尝试使用...

$config['allow_get_array'] = TRUE;
$config['uri_protocol'] = "AUTO";

这是最新版本中的默认设置,而不是...

$config['uri_protocol'] = "PATH_INFO";
$config['enable_query_strings'] = TRUE;

这会将您的 url 结构更改为完全使用查询字符串而不是基于分段的 url,这就是您的其他 url 中断的原因。

升级信息

What's different in Codeigniter 2? (the highlights)

How to upgrade to Codeigniter 2

【讨论】:

感谢您提供的信息,不幸的是,这确实无法帮助或回答问题,因为这些设置在 1.7.3 中不可用。 看第一行... "使用实际最新版本的codeigniter,尝试使用..." 使用的是最新的 1.x 版本,不是最新版本;) 我已经心软了,昨天和今天都在升级。幸运的是,该站点不是太大,我们能够很快地完成它。验证框架的变化是最痛苦的部分。 好!我相信你不会后悔的。公平地说,这个旧的验证类现在已经在几个版本中被弃用了。【参考方案2】:

这对我有用

$config['uri_protocol']    = "PATH_INFO"; 

【讨论】:

以上是关于由于 ?gclid=,Google Adwords 出现 Codeigniter 404 错误的主要内容,如果未能解决你的问题,请参考以下文章

Gclid 的 Adwords API 每次点击费用

什么是谷歌的GCLID参数?

google adwords 中的自动标记

如何在页面之间传递 GCLID

在联系表格中显示 Adwords 广告系列

我可以使用 gclid 和客户端 ID 从谷歌检索啥样的数据?