Google Adwords 和 CodeIgniter GET 变量回调 URL
Posted
技术标签:
【中文标题】Google Adwords 和 CodeIgniter GET 变量回调 URL【英文标题】:Google Adwords and CodeIgniter GET Variable Callback URL 【发布时间】:2011-03-22 15:52:44 【问题描述】:我正在尝试通过使用 CodeIgniter 开发的网站来实现 Google Adwords,我相信当他们将 GET 变量添加到 URL 时它需要“200”状态代码。
我收到来自 Google 的电子邮件,说它在访问我的 URL 时收到 404 状态代码。当我尝试将 ?test=test 添加到 URL 的末尾时,它实际上返回了 404:
通过我的谷歌搜索,我找到了这个有用的链接:
http://codeigniter.com/forums/viewthread/154153/#746115
哪些状态我需要更改我的配置以包含这些:
$config['uri_protocol'] = "PATH_INFO";
$config['enable_query_strings'] = TRUE;
在我的 uri_protocol 设置为“REQUEST_URI”之前。我已经用 ?test=test 进行了测试,它确实有效!但是现在我的所有链接都不起作用了,当我将它切换到 PATH_INFO 时,我需要做什么来修复我的链接?
现在我正在使用 Mod Rewrite 来缩短 URL,以便地址类似于 mydomain.com/blog、mydomain.com/about,并且我的控制器只指向适当的视图。我是否应该更改我的 uri_protocol,如果可以,如何包含 GET 变量而不是 404?
任何建议都会有所帮助,谢谢!
UDPATE:这是我的 htaccess 文件:
RewriteEngine on
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
【问题讨论】:
【参考方案1】:如果你使用 CodeIgniter 2,你可以这样做:
$config['allow_get_array'] = TRUE;
$config['enable_query_strings'] = FALSE;
【讨论】:
感谢您的回复,mydomain.com/?test=test 现在返回“遇到错误 - 您提交的 URI 包含不允许的字符。”可惜根据seoconsultants.com/tools/headers,状态码还是400@ 我允许的 uri 字符配置如下所示:"$config['permitted_uri_chars'] = '?a-z 0-9~%.:_\-';"我试图添加一个“?”在这个开头。 好消息是链接正在使用此配置 好的,非常感谢您的帮助,我想我有足够的时间在这里运行 @Pete:帮助调试:尝试在error/general.php
文件中添加print_r($_SERVER)
。 (我认为这是正确的文件...)【参考方案2】:
您需要执行以下操作 1- $config['enable_query_strings'] = TRUE;
2- $config['permitted_uri_chars'] = 'a-z 0-9~%.:_-\?=&';
并删除“?”从您的 htaccess 文件中。
3- RewriteRule ^(.*)$ index.php/$1 [QSA,L]
【讨论】:
以上是关于Google Adwords 和 CodeIgniter GET 变量回调 URL的主要内容,如果未能解决你的问题,请参考以下文章
与链接到 Google Adwords 帐户的 Google Analytics API 相比,Google Adwords API 报告可以获得多少?
Google Analytics 跨域转化跟踪和归因于 AdWords 广告系列
使用 python 获取“成本”google adwords api