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: Jangan Pernah Berbakhil, Saudaraku!

    Rasulullah Saw. Bersabda :Perumpamaan Orang Yang Pemurah Dan Orang Yang Bersedekah Seperti Seorang Lelaki Yang Memakai Dua Helai Jubah Atau Dua Helai Baju Besi Dari Dadanya Hingga Keatas. Apabila Orang Yang Berbelanja (Dalam Riwayat Lain: Apabila Orang Yang Bersedekah) Ingin Memberi Sedekah, Maka Baju Itu Longgar Buatnya; Dan Apabila Orang Bakhil Ingin Bersedekah, Maka Baju Itu Menjadi Rimas Dan Panas Sehingga Menutupi Jari-jarinya Serta Menghapus Jejaknya. Abu Hurairah Berkata : Orang Yang Bakhil Ingin Melonggarkan Pakaiannya Tetapi Dia Tidak Mampu Melonggarkannya.

    TOP