对不起,我对你的问题的措辞有点困惑,但我想我明白你在说什么。
首先:阅读有关控制器的文档。Codeigniter 文档令人震惊。
第二: URI 直接路由到控制器类名称及其功能。
例如:
<?php
class Profile extends CI_Controller {
function item($username = NULL, $title = NULL)
{
if (is_null($username) || is_null($title)) redirect(base_url());
// blah run code where $username and $title = URI segement
}
}
这将产生这个 URL:
http://www.example.com/profile/item/username/whatever-i-want
然后您可以使用 application/config/routes.php ( docs ) 中的路由删除项目:
$route['(:any)'] = 'profile/item/$1';
更好的方法(请提前阅读):
$route['profile/(:any)'] = 'profile/item/$1';
最后,这将创建您要查找的 URL:
http://www.example.com/username/whatever-i-want
//http://www.example.com/profile/username/whatever-i-want
我可能需要仔细检查语法错误,但这是 Codeigniter 路由工作原理的基础。一旦你的 URL 设置成这样,你就可以用你的 JS 做任何你想做的事情。
但是,我强烈建议不要使用这种方法,因为路由这样的类几乎会使应用程序/站点的其余部分变得无用,除非这是您拥有的唯一控制器/功能(可能不是这种情况)。我认为在 URL 中以一种或另一种方式使用类名会更好。
或者,如果您想以非常规方式跳过路由,也可以像这样使用 index() 和 $this->uri->segment() 。
<?php
class Profile extends CI_Controller {
function index()
{
$username = $this->uri->segment(1);
$title = $this->uri->segement(2);
}
}
希望这是有道理的,可以帮助您解决问题。