CodeIgniter 4 - Getting 404 Not Found on POST request to /auth/login (GET works fine)

13 hours ago 1
ARTICLE AD BOX

I am developing a login system using CodeIgniter 4 and PHP 8.

When I access the login page via GET (/auth/login), the view loads correctly. However, when I submit the form using POST to the same URL, I receive a 404 Not Found error.

I have checked my controller and view names for case sensitivity (since I am on a Linux server), but I'm stuck.

My Controller (app/Controllers/Auth.php):

<?php namespace App\Controllers; use App\Models\UserModel; use App\Models\LoginHistoryModel; class Auth extends BaseController { public function index() { return view('login'); } public function login() { date_default_timezone_set('Asia/Jakarta'); // Check if request is POST if ($this->request->getMethod() === 'post') { $session = session(); $model = new UserModel(); $historyModel = new LoginHistoryModel(); // Get input (Using array format 'auth[nik]') $nik = $this->request->getPost('auth[nik]'); $password = $this->request->getPost('auth[password]'); $user = $model->checkLogin($nik, $password); if ($user) { $sessionData = [ 'id' => $user['id'], 'nik' => $user['nik'], 'name' => $user['name'], 'role' => $user['role'], 'department' => $user['department'] ?? 'General', 'logged_in' => TRUE ]; // Save Login History try { $historyId = $historyModel->insert([ 'nik' => $user['nik'], 'name' => $user['name'], 'ip_address' => $this->request->getIPAddress(), 'last_activity' => 'User Login' ]); $sessionData['login_history_id'] = $historyId; $session->set($sessionData); return redirect()->to('/welcome')->with('success', 'Welcome'); } catch (\Exception $e) { log_message('error', 'History Error: ' . $e->getMessage()); return redirect()->to('/welcome'); } } else { $session->setFlashdata('error', 'NIK or Password incorrect!'); return redirect()->to('/'); } } return redirect()->to('/'); } public function logout() { session()->destroy(); return redirect()->to('/'); } public function welcome() { if (!session()->get('logged_in')) { return redirect()->to('/'); } return view('welcome'); } } <form action="<?= base_url('auth/login') ?>" method="post"> <?= csrf_field() ?> <input type="text" name="auth[nik]" placeholder="NIK"> <input type="password" name="auth[password]" placeholder="Password"> <button type="submit">Login</button> </form>

this for form login

and this :
app/Config/Routes.php

<?php use CodeIgniter\Router\RouteCollection; /** * @var RouteCollection $routes */ // --- ROUTE PUBLIK (Tanpa Filter) --- $routes->get('/', 'Auth::index'); $routes->get('/auth/logout', 'Auth::logout'); $routes->add('/auth/login', 'Auth::login'); // --- ROUTE PROTEKSI (Dengan Filter) --- // Gunakan format ini: $routes->group('nama_group', ['options'], function... // Ini kompatibel dengan versi CI4 Hosting Anda (yang error di atas) $routes->group('auth', ['filter' => 'auth'], function($routes) { // Dashboard $routes->get('/dashboard', 'Dashboard::index'); $routes->get('/dashboard/(:any)', 'Dashboard::index/$1'); // Welcome (Halaman Sukses) $routes->get('/welcome', 'Auth::welcome'); // Admin - Edit Dashboard $routes->get('/admin/edit_dashboard', 'Admin::edit_dashboard'); $routes->post('/admin/update_links', 'Admin::update_links'); // Admin - Manage Links $routes->get('/admin/manage_links', 'Admin::manage_links'); $routes->post('/admin/save_link', 'Admin::save_link'); $routes->get('/admin/delete_link/(:num)', 'Admin::delete_link/$1'); // Admin - Manage Departments $routes->get('/admin/manage_departments', 'Admin::manage_departments'); $routes->post('/admin/save_department', 'Admin::save_department'); $routes->get('/admin/delete_department/(:num)', 'Admin::delete_department/$1'); // Admin - Login History $routes->get('/admin/login_history', 'Admin::login_history'); // Admin - User Management $routes->get('/admin/users', 'Admin::users'); $routes->get('/admin/users/add', 'Admin::add_user'); $routes->get('/admin/users/edit/(:num)', 'Admin::edit_user/$1'); $routes->post('/admin/users/save', 'Admin::save_user'); $routes->get('/admin/users/delete/(:num)', 'Admin::delete_user/$1'); });

I cant go to login page, index page, i use CI 4 you can download

https://drive.google.com/drive/folders/1YN42LDbo3frCAXCP5clp7hMp5xt4rX8F?usp=sharing

please help me to solve this

Read Entire Article