2011-06-16 138 views
2

這是我的CodeIgniter控制器類代碼。CodeIgniter URL重寫Nginx服務器

class View extends MY_Controller 
{ 

    function index($number) 
    { 
     ..... 
    } 
    ....... 
} 

通過瀏覽器,我可以利用這個URL

http://localhost/view/index/12 

所以,我的問題是

有重寫URL任何有效的方式訪問View類的指數法,例如, into this URL

http://localhost/view/12 

我的網頁服務器是Nginx。

+0

您應該可以直接訪問http:// localhost/view/12。它默認爲index()。 – Nacho 2011-06-16 12:30:39

+0

嗯..不,它會在我的服務器上發生404錯誤。 -_-;我不知道爲什麼? – 2011-06-16 12:55:53

+0

我認爲這兩個答案是正確的。它只適用於我的.htaccess – Nacho 2011-06-16 17:26:10

回答

5

index()默認情況下會被調用,但是如果您想爲其他函數執行此操作,則可以使用CI中的URI路由功能。

將此添加到config.php的config目錄中。

$route['view/(:num)'] = "view/index/$1"; 
4

使用Nginx的以下配置中刪除所有的控制器後index

# removes trailing "index" from all controllers 
if ($request_uri ~* index/?$) 
{ 
    rewrite ^/(.*)/index/?$ /$1 permanent; 
} 

明確可以路線從CodeIgniter的路由文件的URL位於

./application/config/routes.php

插入此碼。這應該適用於Nginx或Apache服務器。

// hide index from all controllers 
$route['(:any)/(:any)'] = "$1/index/$2"; 

// hide only from View Controller 
$route['view/(:any)'] = "view/index/$1"; 

// hide only from View with numeric parameter 
$route['view/(:num)'] = "view/index/$1"; 

從文檔找到關於Nginx URL Rewrite的更多信息。希望這可以幫助你。謝謝!!