我目前正在为一个客户建立一个新的子系统,该系统将运行在一个子目录上,如 https:/example.comnew-subsystem。.
他们现有的网站是本地硬编码的PHP,所以我必须创建一个新的文件夹的根,并把CodeIgniter 3框架。我配置了base_url,然后就可以了。它工作得很好。
现在的问题是,当我试图在控制器中创建一个新的方法时,它返回错误404,似乎服务器试图处理请求,而不是让CodeIgniter处理。
例子
当我试图访问 https:/example.comnew-subsystem。,它工作得很好。
但当我试图访问 https:/example.comnew-subsystemtest。 它将显示错误404,似乎服务器正试图寻找另一个文件夹。这里是实际的 route.php
, config.php
, controller
我相信问题不在这三个地方。
routes.php
$route['default_controller'] = 'lockdown';
$route['test'] = 'lockdown/test';
config.php
$config['base_url'] = 'http://localhost/project-lockdown/tutorials/';
Lockdown.php (控制器)
class Lockdown extends CI_Controller {
public function index()
{
// This is working by default. It shows on http://localhost/project-lockdown/tutorials/
echo "Hello World!"
}
public function test(){
// This should show on http://localhost/project-lockdown/tutorials/test
echo "Hello, this is a test method and it is not working. Error 404 is shown!";
}
}
主要问题。如何告诉服务器我想让CodeIgniter处理剩下的请求,而这些请求是在... http:/localhostproject-lockdowntutorials(controller)(method) 而不是从字面上理解。
目前,我被困在这里,还在尝试着在整个互联网上寻找解决的办法,能找到一个东西。我不是 .htaccess
所以我认为这与 .htaccess
魔法之类的东西(我现在正在努力学习)。
如果有任何帮助,将不胜感激。如果我只是在根文件夹上扔进CodeIgniter,就不会出现这个问题。
先谢谢你。
你需要在URL中添加index.php来访问你的controllermethod。试试用-
localhost/project-lockdown/tutorials/index.php/(controller)/
您可以删除 index.php
通过重写一些规则,在 .htaccess
文件。