CodeIgniter 3控制器方法在子目录下运行时不工作。

问题描述 投票:0回答:1

我目前正在为一个客户建立一个新的子系统,该系统将运行在一个子目录上,如 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,就不会出现这个问题。

先谢谢你。

php codeigniter-3
1个回答
1
投票

你需要在URL中添加index.php来访问你的controllermethod。试试用-

localhost/project-lockdown/tutorials/index.php/(controller)/

您可以删除 index.php 通过重写一些规则,在 .htaccess 文件。

© www.soinside.com 2019 - 2024. All rights reserved.