0

我的網址這樣如何笨使用路由

"mydomain.com/index.php/user/rbkdon3" 

我要作出這樣一個網站的創建Facebook的URL類型用戶名是字母+數字的組合。

我應該在routes.php文件中做些什麼才能達到我的要求。

+0

可能重複的[用PHP重寫URL](http://stackoverflow.com/questions/16388959/url-rewriting-with-php) –

+0

但我想通過遵循路由在codeigniter –

回答

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] 

applications/config/config.php

$config['index_page'] = "index.php"; 

和路由刪除index.php

$route['(^(?=[^\s]*?[0-9])(?=[^\s]*?[a-zA-Z])[a-zA-Z0-9]*$)'] = "user/$1";` 

正則表達式被更新

+0

thnks for你的答案,這是對我的項目中的其他控制器的代碼效果.. ????? $ route ['(:any)'] =「user/$ 1」的b'coz;用正則表達式編輯的 –

+0

,當包含數字和字符串的值使用user/$ 1 – dhidy

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。