2013-07-15 64 views
0

我正在開發一個網站,我想爲每個用戶帳戶創建一個唯一的網址。codeigniter中每個用戶名的唯一網址

意味着

http://example.com/username => route to controler/index/username 

http://example.com/username2 => route to controler/index/username2 

我使用笨和URL的模式是:

http://exaple.com/controller name/method name/argument 

我越來越不知道如何才能做到這種路由只是像Facebook這樣做的?

回答

1

通過CI路由,你可以很容易地實現這一點。

在你routes.php配置(應用程序/配置/ route.php)文件添加類似這樣的一行:

$route['(:any)'] = "controller/index/$1"; 

左側位爲您鍵入或在你的瀏覽器地址欄中的一個。正確的位是它的路線。在你的情況下,控制器和方法的名稱,然後是參數。爲你的情況,將是用戶。這是一個字母數字變量,因此您如何傳遞它。

完整的參考可以在這裏找到,但上面的例子應該都清楚了: http://ellislab.com/codeigniter/user-guide/general/routing.html

+0

什麼是$ 1表示這裏?參數的數量? –

+0

並沒有滿足我的目的.......它重定向到路由控制器,每當我試圖執行任何字符串(甚至控制器的名稱) –

+0

'''$ 1'''是一個變量,在這這個uri的第一個,因此數字1 這是一個將'''username'''參數傳遞給你的方法 – bottleboot

0

參數http://exaple.com/controller_name/method_name/argument部分是您的情況需要唯一的部分。

+0

不,我不想要顯示控制器和方法的名稱 –

0

您需要修改.htacces更換的index.php例如:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /<your_root_foler>/%{HTTP_HOST} 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ /<your_root_foler>/%{HTTP_HOST}/index.php/$1 [L] 
    </IfModule> 

這條線(RewriteRule ^(。*)$ //%{HTTP_HOST}/index.php/$1 [L])替換你的應用中的所有index.php你在哪裏使用codeigniter

當你可以修改你的routes.php說「bottleboot」

+0

多數民衆贊成在不同的事情,這不是我關心.........我不想說,如果我不寫任何東西在URL然後它重定向到默認控制器,如果我寫任何東西(甚至名稱另一個控制器)則顯示問題 –