Mengaktifkan modul mod_rewrite pada Apache2

Pasang symbolic link di /etc/apache2/mods-enabled untuk file rewrite.load
cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/rewrite.load
atau cara cepat dengan aktifkan melalui
sudo a2enmod rewrite
buat file konfigurasi rewrite
sudo leafpad /etc/apache2/conf-available/rewrite.conf
isikan dengan
<IfModule mod_rewrite.c>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</IfModule>
buat symbolic link di /etc/apache2/conf-enabled
cd /etc/apache2/conf-enabled
sudo ln -s ../conf-available/rewrite.conf
jalankan ulang atau set baca ulang konfigurasi apache2
sudo service apache2 reload

buat file .htaccess

sudo nano /var/www/html/.htaccess

isikan contoh rule

<IfModule mod_rewrite.c>
RewriteEngine on

RewriteRule ^beranda$ main.php?page=beranda [L]

ErrorDocument 404 http://localhost/error-404.html
ErrorDocument 403 http://localhost/error-403.html

Options All -Indexes
</IfModule>

Dari rule di atas, setiap mengarah ke http://localhost/beranda maka akan membuka http://localhost/main.php?page=beranda dan jika ada error, maka akan mengarah ke halaman error yang ditunjuk

^beranda$ adalah kalimat yang akan dicocokan.

  • ^ menyatakan awal dari URL, dimana localhost/ diabaikan.
  • $ menyatakan akhir dari URL
  • beranda string yang dicocokkan

main.php?page=beranda adalah tujuan dari file sesungguhnya.

[NC] ignores capitalization dan [L] menyatakan lowercase

set permision dari .htaccess ke mode read only

sudo chmod 644 /var/www/html/.htaccess