zih*_*oyu 4 php codeigniter codeigniter-url
根据CI的文档,CodeIgniter使用基于段的方法,例如:
example.com/my/group
Run Code Online (Sandbox Code Playgroud)
如果我想找到一个特定的组(id = 5),我可以访问
example.com/my/group/5
Run Code Online (Sandbox Code Playgroud)
在控制器中,定义
function group($id='') {
...
}
Run Code Online (Sandbox Code Playgroud)
现在我想使用传统的方法,CI称之为"查询字符串"URL.例:
example.com/my/group?id=5
Run Code Online (Sandbox Code Playgroud)
如果我直接转到此URL,则会找不到404页面.那我怎么能启用呢?
小智 9
为了可靠地使用查询字符串,我发现你需要做3件事
application/config/config.php集合中$config['enable_query_strings'] = true;application/config/config.php集合中$config['uri_protocol'] = "PATH_INFO";我使用以下内容
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)
//Add this method to your (base) controller :
protected function getQueryStringParams() {
parse_str($_SERVER['QUERY_STRING'], $params);
return $params;
}
// Example : instagram callback action
public function callback()
{
$params = $this->getQueryStringParams();
$code = !empty($params['code']) ? $params['code'] : '';
if (!empty($code))
{
$auth_response = $this->instagram_api->authorize($code);
// ....
}
// .... handle error
}
Run Code Online (Sandbox Code Playgroud)