我在代码点火器中遇到路由问题。我已经掌握了基础知识。
$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]
答案 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";
答案 2 :(得分:0)
$config['uri_protocol'] = "PATH_INFO";
将其他所有内容保留为默认值。