2011-06-16 140 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的更多信息。希望这可以帮助你。谢谢!!