簡體   English   中英

CodeIgniter 3 controller 方法在子目錄中運行時不起作用

[英]CodeIgniter 3 controller methods not working when running in sub-directory

我目前正在為客戶端構建一個新的子系統,它將在https://example.com/new-subsystem之類的子目錄上運行。

他們現有的網站是本機/硬編碼 PHP 所以我必須在根目錄上創建一個新文件夾並將 CodeIgniter 3 框架放在那里。 我配置了base_url,瞧。 它工作正常。

現在的問題是,當我嘗試在 controller 中創建一個新方法時,它返回錯誤 404,似乎服務器正試圖從字面上處理請求,而不是讓 CodeIgniter 處理它。

例子

當我嘗試訪問https://example.com/new-subsystem時,它工作正常。

但是,當我嘗試訪問https://example.com/new-subsystem/test時,它會顯示錯誤 404,並且似乎服務器正在嘗試查找另一個文件夾。 這里是實際route.php , config.php , controller我相信問題不在於這三個。

路線.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://localhost .

現在,我被困在這里,仍然試圖通過互聯網找到解決方案,並且可以找到東西。 我不是.htaccess人,所以我認為這與.htaccess魔法或其他東西(我現在正在嘗試學習)有關。

任何幫助,將不勝感激。 如果我只是在根文件夾中放入 CodeIgniter,則不會出現此問題。

先感謝您。

您需要 URL 中的 append index.php 才能訪問您的控制器/方法。 嘗試 -

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

您可以通過重寫.htaccess文件中的一些規則來刪除index.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM