# Routing CI3 vs CI4 ## CI3 (`application/config/routes.php`) - `default_controller` = `site` - `404_override` = `errors/page_missing` - Pola bahasa URL: `^(\w{2})/(.*)$` → segment berikutnya - Pola REST modul `api`: `api/(:any)/(:num)` → `api/$1/id/$2` (CI Bootstrap + codeigniter-restserver) **`Json` controller:** tidak didefinisikan eksplisit; mengikuti routing default `controller/method` → `/json/login`, dll. ## CI4 (`app/Config/Routes.php`) | Kebutuhan | Rute | |-----------|------| | Beranda default | `GET /` → `Home::index` | | Admin (foundation) | `GET /admin` → `Admin\Dashboard::index` | | API mobile (utama) | `POST /api/mobile/{method}` → `Api\MobileJsonController::{method}` | | **Alias kompatibilitas CI3** | `POST /json/{method}` → handler yang sama | ## Strategi cutover 1. Deploy CI4 di hostname/subpath terpisah; uji parity respons per endpoint. 2. Alihkan aplikasi mobile ke base URL CI4; gunakan **`/json/*`** agar path relatif sama dengan CI3 (tanpa mengubah path di kode klien jika sebelumnya `/index.php/json/...`). 3. Setelah stabil, opsional: standarkan ke `/api/mobile/*` dan hentikan CI3 untuk endpoint tersebut. ## Catatan `index.php` CI3 sering memakai `index.php` di URL; CI4 `public/index.php` + rewrite. Samakan konfigurasi web server (Apache/Nginx) agar `baseURL` di `.env` sesuai.