我的网址是这样的
"mydomain.com/index.php/user/rbkdon3"
我想像facebook一样制作:
mydomain.com/rbkdon3
注意:用户名是字母+数字的组合。
我应该在routes.php文件中做些什么才能达到我的要求。
答案 0 :(得分:0)
你必须使用apache重写模块并首先使用.htaccess
RewriteEngine on
RewriteCond $1 !^(index\.php|(.*)\.swf|forums|images|css|downloads|jquery|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?$1 [L,QSA]
并从index.php
applications/config/config.php
$config['index_page'] = "index.php";
和路线
$route['(^(?=[^\s]*?[0-9])(?=[^\s]*?[a-zA-Z])[a-zA-Z0-9]*$)'] = "user/$1";`
正则表达式已更新
答案 1 :(得分:0)
通过这种方式,你可以实现它。
$route['(:any)'] = 'user/'.$username;
动态创建此路线有点复杂
我们必须仅在用户退出数据库时才创建此路由,因此不会影响其他控制器。在routes.php中写下以下代码
$username = explode('/', $_SERVER['REQUEST_URI']);
require_once( BASEPATH .'database/DB'. EXT );
$db =& DB();
$query = $db->where('username', $username[1] ); //check user name
$query = $db->get( 'tbl_users' ); //table name in which user exits
if($query->num_rows > 0){ //if exits the create routing
$route['(:any)'] = 'user/'.$username[1]; // here you can define any controller and function name as required for the demo I have given this "'user/'.$username[1]"
}
注意:使用.htaccess文件从url中删除index.php。