使用时的CodeIgniter路由问题:any

时间:2011-01-19 18:15:15

标签: php codeigniter routing

我在代码点火器中遇到路由问题。我已经掌握了基础知识。

$route['user/authorize'] = "user/asdf";

虚拟线路工作正常。这不是:

$route['user/authorize?code=:any'] = "user/asdf";

特别是

$route['user/authorize?code=:any'] = "user/authorize/$1";

我已将$config['permitted_uri_chars']变量更改为空字符串(允许所有)。

我也尝试过使用(:any)括号。我认为这是手册中的拼写错误,因为(:num)也使用了括号。没有效果。

我没有想法。任何人吗?

BTW代码变量是一个Facebook访问令牌,看起来像这样:

2.TOCElrzcR5MYz_J8O67hWA__.3600.1295467200-17044424246|4FPbz0N-pXqGWYR81PWGPTY06A4

不确定它是否相关,我的.htacces文件:

RewriteEngine on
RewriteCond $1 !^(index\.php|css|images)
RewriteRule ^(.*)$ /website/index.php/$1 [L]

3 个答案:

答案 0 :(得分:1)

由于Codeigniter结构是:

Controller / Method / Params

我认为:

用户/授权

是你的控制器/方法。

现在,

$ route ['user / authorize?code =:any'] =“user / asdf”;

应该是:

$ route ['user / authorize /:any'] =“user / asdf”;

其中

function authorize($ code = null){     echo $ code; }

将输出与

相同

function authorize(){ $code = $_GET['code']; }

你写的oldskool php:ninja.php?code = something

CI中的

是第三部分。


/用户/授权/ TOCElrzcR5MYz_J8O67hWA __ 3600.1295467200-17044424246 |。4FPbz0N-pXqGWYR81PWGPTY06A4

等于

ninja.php代码= TOCElrzcR5MYz_J8O67hWA __ 3600.1295467200-17044424246 |。4FPbz0N-pXqGWYR81PWGPTY06A4

正如开头所解释的那样。

答案 1 :(得分:0)

我相信您需要在配置中添加以下行:

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

Source

答案 2 :(得分:0)

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

将其他所有内容保留为默认值。