sebelum menggunakan codeigniter 4, saya selalu melakukan konfigurasi terlebih dahulu, agar nantinya program yang dibuat berjalan dengan lancar tanpa adanya gangguan sedikitpun
apa saja yang selalu saya konfigurasi, langsung saja saya bahas
1. Membuat BASE_URL menjadi Dinamis
membuat BASE_URL menjadi dynamis adalah hal yang saya lakukan agar tidak selalu mengubah property $baseURL setiap saat, berikut cara melakukannya
Tambahkan kode dibawah ini pada file app/Config/Constants.php
/*
| --------------------------------------------------------------------------
| BASE URL
| --------------------------------------------------------------------------
|
| dynamic create url for base_url() function
*/
$server_name = !empty($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost:8080';
$base_url = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$base_url .= "://" . $server_name;
if ($server_name == 'localhost' OR filter_var($server_name, FILTER_VALIDATE_IP)) {
$base_url .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);
}
defined('BASE') || define('BASE', $base_url);
Edit Kode pada file app/Config/App.php dan sesuaikan property yang ada dengan format dibawah dibawah ini -
public $baseURL = BASE;
-
public $indexPage = '';
2. Mengatur Timezone dan Bahasa Aplikasi
pengaturan lainnya yang harus dilakukan adalah mengatur timezone, yaitu dengan cara masuk kedalam folder app/Config/ dan buka file App.php
cari property $appTimezone dan ganti menjadi
public $appTimezone = 'Asia/Jakarta';
untuk mengatur bahasa masih didalam file yang sama yaitu app/Config/App.php, tinggal disesuaikan saja propertynya seperti yang ada dibawah ini
-
public $defaultLocale = 'id';
-
public $supportedLocales = ['id','en'];
3. Pengaturan Session
untuk membuat session menjadi lebih aman agar tidak dihijack dengan mudah, maka kalian harus mengaturnya menjadi lebih ketat, berikut caranya
buka file konfigurasi app terletak di app/Config/App.php
kemudian rubah property pengaturan session yang ada menjadi seperti ini
public $sessionExpiration = 0;
public $sessionTimeToUpdate = 1;
public $sessionRegenerateDestroy = true;
4. Mengaktifkan Mode development
dengan mangaktifkan mode development nantinya setiap ada kode yang error maka akan memunculkan letaknya dimana dan kenapa
selain itu dengan mengaktifkan mode development akan ada toolbar untuk mendebug aplikasi kalian berjalan seberapa cepat dan apa saja yang diprosesnya
untuk mengaktifkannya yaitu dengan mengedit file '.env', berikut kode yang harus disesuaikan
#--------------------------------------------------------------------
# ENVIRONMENT
#--------------------------------------------------------------------
CI_ENVIRONMENT = development
perhatikan juga saat install pertama kali ci 4 file '.env' ditulis 'env' (belum ada titiknya) jadi silahkan direname dengan menambahkan titik didepannya
5. Pengaturan .htacces(s)
untuk pengaturan .htacces(s) ini saya gunakan agar saat diupload kehosting bisa menghandle segala error dan meningkatkan keamanan
edit file public/.htacces(s) dan ganti menjadi kode dibawah ini
# Disable directory browsing
Options All -Indexes
# ----------------------------------------------------------------------
# Rewrite engine
# ----------------------------------------------------------------------
# Turning on the rewrite engine is necessary for the following rules and features.
# FollowSymLinks must be enabled for this to work.
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
# Checks to see if the user is attempting to access a valid file,
# such as an image or css document, if this isn't true it sends the
# request to the front controller, index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\s\S]*)$ index.php/$1 [L,NC,QSA]
# Ensure Authorization header is passed along
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# http to https
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# non www to www
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} !^tools\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Set HSTS env var only if HTTPS
RewriteCond %{HTTPS} on
RewriteRule ^ - [E=HSTS:1]
</IfModule>
<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
ErrorDocument 404 index.php
</IfModule>
# Disable server signature start
ServerSignature Off
# Disable server signature end
# Set STS header only when the HSTS env var is set (including redirects)
Header always set Strict-Transport-Security "max-age=31536000" env=HSTS
# remove x-powered-by
Header unset X-Powered-By