我需要像facebook应用程序一样在codeigniter中创建动态网址。是否可以使用codeigniter框架创建此类URL? 例如: 1. www.facebook.com/nisha 2. www.facebook.com/dev
答案 0 :(得分:2)
您需要在application / config / routes.php中为控制器设置自定义路由。像:
$route['([a-zA-Z]+)'] = "controller_name/function/$1";
这会使网址符合您的需要,但会使您的所有控制器无法访问,因为任何“ / controllername / parameter / ”格式都会与“(: )'并将重定向到我们的' controller_name / function / '。
要停止由CI路由器重定向的控制器,您必须先在routes.php上显式定义所有控制器,然后在最后一行添加上述路由规则。多数民众赞成我是如何使它工作的。 希望以某种方式帮助你。
答案 1 :(得分:0)
通过使用路线很容易设置它。阅读他们的路线guide
$route['([a-zA-Z]+)'] = "controller/user/$1";
但是,如果他们只是访问网站的一种方式,就像domain.com/username
那么好吧,否则,从长远来看,这将是一个难以理解的问题。在这种情况下,将Route限制为有限的范围,如
$route['users/([a-zA-Z]+)'] = "controller/user/$1";
这将有助于以多种方式扩展系统
答案 2 :(得分:0)
试试这种方式。如果你有很多控制器,它会减少很多重复行,但我不知道它是否违反任何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";
}