在类似facebook的codeigniter中创建一个动态url


create a dynamic url in codeigniter like facebook

我需要像facebook应用程序一样在codeigniter中创建一个动态url。有可能使用codeigniter框架创建这样的url吗?例如:1.www.facebook.com/nisha2.www.facebook.com/dev

您需要在application/config/routes.php中为控制器设置自定义路由


$route['([a-zA-Z]+)'] = "controller_name/function/$1";

这使url与您想要的方式相似,但它使您的所有控制器都不可访问,这是因为任何"/controllername/parameter/"格式都将与"(:any)"匹配,并将重定向到我们的"1controller_name/function/'"。

要停止CI路由器重定向的控制器,您必须首先在routes.php上明确定义所有控制器,然后在最后一行添加上述路由规则。这就是我工作的方式。希望这对你有所帮助。

通过使用路由设置这一点非常容易。阅读他们的路线指南

$route['([a-zA-Z]+)'] = "controller/user/$1";

然而,如果他们只是访问网站的一种方式,就像domain.com/username一样,那么没关系,否则,从长远来看,这将是一个难题。在这种情况下,将路线限制在有限的范围内,如

$route['users/([a-zA-Z]+)'] = "controller/user/$1";

这将有助于以多种方式扩展系统

试试这种方法。如果你有很多控制器,它会减少很多重复的线路,但我不知道它是否违反了任何CI规则。

//this code block should be placed after any kind of reserved routes config
$url_parts = explode('/',strtolower( $_SERVER['REQUEST_URI']) );
$reserved_routes = array("controller_1", "controller_2", "controller_3" );
if (!in_array($url_parts[1], $reserved_routes)) {    
    $route['([a-zA-Z0-9_-]+)'] = "controller_1/profile/$1";
}