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_url
是http://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 系统中以大写字母重命名控制器和模型的名称
我真的很沮丧。 之前在 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_url
是http://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 系统中以大写字母重命名控制器和模型的名称