Wednesday 12 2011

Aktifkan Mod_rewrite Pada Ubuntu

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 ..




sumber: www.putragaluh.web.id

No comments:

Post a Comment