CodeIgniter URL重写Nginx服务器
问题描述:
这是我的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。
答
index()
默认情况下会被调用,但是如果您想为其他函数执行此操作,则可以使用CI中的URI路由功能。
将此添加到config.php的config目录中。
$route['view/(:num)'] = "view/index/$1";
答
使用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的更多信息。希望这可以帮助你。谢谢!!
您应该可以直接访问http:// localhost/view/12。它默认为index()。 – Nacho 2011-06-16 12:30:39
嗯..不,它会在我的服务器上发生404错误。 -_-;我不知道为什么? – 2011-06-16 12:55:53
我认为这两个答案是正确的。它只适用于我的.htaccess – Nacho 2011-06-16 17:26:10