3

我正在尝试使用使用 CodeIgniter 开发的网站来实现 Google Adwords,我相信当他们向 URL 添加 GET 变量时它需要“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]
4

2 回答 2

2

如果你使用 CodeIgniter 2,你可以这样做:

$config['allow_get_array'] = TRUE;
$config['enable_query_strings'] = FALSE;
于 2011-03-22T15:56:40.543 回答
0

您需要执行以下操作 1- $config['enable_query_strings'] = TRUE;

2- $config['permitted_uri_chars'] = 'az 0-9~%.:_-\?=&';

并删除“?” 从您的 htaccess 文件中。

3- RewriteRule ^(.*)$ index.php/$1 [QSA,L]

于 2011-05-17T10:18:52.743 回答