Aktifkan mod_rewrite Pada Ubuntu

Bekerja dengan framework tentunya juga ingin memaksimalkan fitur yang telah disediakan, yang ingin saya share pada tulisan ini adalah untuk mengaktifkan modul mod_rewrite pada apache2 yang berjalan pada ubuntu (saat ini saya menggunakan Ubuntu 9.10 - the Karmic Koala).

Sekilas tentang mod_rewrite (ref: http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html) :

mod_rewrite dibutuhkan untuk melakukan penulisan ulang URL berdasarkan regular-expression parser secara on the fly. Manipulasi URL bisa dilakukan untuk server variable, environment variables. HTTP headers, time stamps dan lain-lain. mod_rewrite beroperasi pada URL lengkap (termasuk bagian path-info) baik dalam konteks per-server (httpd.conf) dan konteks per-directory (.htaccess).

Ok, implementasi realnya karena saat ini saya menggunakan sebuah framework (Codeigniter). Default config.php ($config['index_page'] = "index.php";) akan membuat kondisi URL menjadi :

http://localhost/index.php/var1/var2/

dan alangkah indahnya :) apabila hal tersebut bisa kita buat menjadi (hapus index.php pada config.php -> $config['index_page'] = ""):

http://localhost/var1/var2/

selain itu, dalam Codeigniter juga diterapkan path folder/file yang sangat konsisten sehingga semua file/folder akan mengikuti rule dari framework ini. misalnya, apabila kita menyimpan file abcd.txt di root folder codeigniter maka kita file tersebut tidak bisa diakses melalui http://localhost/abcd.txt melainkan harus kita tulis rulenya yang melibatkan modul mod_rewrite.

Langkah-langkah mengaktifkan mod_rewrite pada ubuntu sebagai berikut :

1. Aktifkan mod_rewrite dengan perintah di terminal/console:

sudo a2enmod rewrite

dengan perintah diatas, maka kita bisa melihat file rewrite.load di /etc/apache2/mod-enabled dan untuk lebih meyakinkan lagi, anda bisa membuat file php yang isinya : <?php phpinfo(); ?>

2. Edit file /etc/apache2/site-enable/000-default


edit : AllowOverride none menjadi AllowOverride all

sample kurang lebih sebagai berikut:

#<Directory /var/www/>
<Directory /home/ezwan/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>


3. Restart apache dengan perintah di terminal/console:


sudo /etc/init.d/apache2 restart

4. Buat file .htaccess dan simpan di root directory codeigniter dan isinya kurang lebih seperti dibawah ini:


# Set the default handler.
DirectoryIndex index.php

# Various rewrite rules.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|robots\.txt|info\.txt|abcd\.txt)
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
</IfModule>


dengan rule diatas, maka keinginan untuk memiliki url ringkas (tanpa index.php) dan akses file abcd.txt bisa dilakukan.

Semoga membantu ..

Tags:
  • # Ubuntu
  • Mutiara Hadist: Membahagiakan Saudara Kita

    Rasulullah Bersabda, 'Barangsiapa Berjalan Memenuhi Keperluan Saudaranya Dan Menyampaikan Keinginannya, Maka Itu Lebih Besar (pahalanya) Daripada Iktikaf Di Masjid Selama 10 Tahun, Sedangkan Orang Yang Iktikaf Satu Hari Untuk Mencari Keridhaan Allah, Maka Allah Akan Jadikan Penghalang Antara Ia Dan Neraka Tiga Parit Yang Jauhnya Lebih Dari Dua Ufuk Timur Dan Barat'.

    TOP