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: Rukun Islam

    Dari Abi Abdurrahman Abdillah Bin Umar Bin Khattab Ra. Berkata: Aku Telah Mendengar Rasulullah Saw Bersabda: "Bangunan Islam Itu Atas Lima Perkara Mengakui Bahwa Tiada Tuhan Melainkan Allah Dan Sesungguhnya Muhammad Itu Utusan Allah, Mendirikan Shalat, Mengeluarkan Zakat, Mengerjakan Haji Ke Baitullah Dan Puasa Bulan Ramadhan."

    TOP