ubuntu 实时服务器 运行 虚拟机上的 Codeigniter 路由

Codeigniter routing on a ubuntu live server running on a virtual machine

我真的很沮丧。 之前在 windows 7 本地主机上一切正常,但在我将 codeigniter 项目移动到虚拟机上的 ubuntu 服务器 运行 之后,一切都变得如此令人沮丧。

虚拟盒子上的 ubuntu 服务器 运行 的 IP 地址为 127.0.0.1,主机 IP 地址为 127.0.0.2。 在 virtual box 中,我使用 NAT 适配器映射了主机 ip 和来宾 ip。 所以我可以从主机浏览器访问来宾 ip。

在config.php中,base_url是这样的$config['base_url'] = 'http://'.$_SERVER['HTTP_HOST']; 所以base_urlhttp://127.0.0.1

默认控制器是$route['default_controller'] = 'login';

在主机浏览器上,默认控制器的默认页面可以完美加载,但它不适用于使用 base_url 访问的其余页面,当页面在服务器上找不到时确实有。

<form name="frmLogin" id="frmLogin" method="POST" action="<?php echo base_url('login/login'); ?>">
  <input type="text" placeholder="Email" id="txtEmail" value="<?php set_value('txtEmail') ?>" name="txtEmail">  
  <input type="password" placeholder="Password" id="txtPassword" value="<?php set_value('txtPassword') ?>" name="txtPassword">  
  <a href="#" class="forgot">forgot password?</a>
  <input type="submit" value="Sign In" name="btnLogin" id="btnLogin">
</form>

在上面的表格中,找不到控制器login/login

如何设置 routes.php 以便可以使用 base_url 访问所有页面?

config.php

$config['base_url'] = '';

设法解决了我的问题,出现此问题是因为在 unix 中文件名区分大小写,而在 windows 中则不是。我不得不在 unix 系统中以大写字母重命名控制器和模型的名称