Mod_Rewrite yang Bikin Sakit Kepala

Tadinya saya mau berobat ke Tong Fang tapi ternyata sudah menemukan obatnya.

Untuk membikin webservice REST, diwajibkan meng-enable-kan fitur mod_rewrite. Sebenernya, secara default, fitur ini sudah enable. Tapi untuk konfigurasinya ini loh, bikin sakit kepala. Setelah berjam-jam, saya temukan obatnya.

Ceritanya, saya pengen bikin satu project web dengan menggunakan Slim Framework untuk membantu membikin webservice RESTful API. Untuk itu saya setting ulang MangBook. Daripada pake stack-nya Zend Server CE, saya memilih menggunkan stacks bawaan default MacBook.  Untuk setting Apache dan PHP di MacOSX bisa dilihat di mari.

Keinginan saya:

1. Saya simpan folder project web “ddr” ini di direktori /Users/faridabdurrahman/Sites/ddr. Di mana, public foldernya di direktori /Users/faridabdurrahman/Sites/ddr/public. Sementara library, termasuk Slim di simpan di dalam direktori /Users/faridabdurrahman/Sites/ddr/lib.

2. Saya pengen alamat websitenya danareksadebtresearch.com yang merujuk ke public folder. Sementara controller atau file index API RESTful-nya di danareksadebtresearch.com/api 

3. Di direktori /Users/faridabdurrahman/Sites/ddr/public dan /Users/faridabdurrahman/Sites/ddr/public/api, pengen Mod_Rewrite-nya jalan. Karena di dua tempat ini, saya akan menggunakan clean URL, biar keren.

Sudah. Caranya:

1. Ya dicopy-paste aja filesnya ke sono. Selesai!

2. Ada tiga cara, yakni:

(a) Tambahkan IP Address dan alamatnya di file /etc/hosts, seperti gambar di bawah ini

(b) Edit file /etc/apache2/httpd.conf (di terminal ketik sudo vim /etc/apache2/httpd.conf), uncomment baris Incude /private/…./httpd-vhosts.conf

(c) Edit file /etc/apache2/extra/httpd-vhosts.conf (caranya sama dengan point b), masukan baris seperti di gambar ini.

 

3. Untuk membuat clean url, di direktori yang diinginkan ( /Users/faridabdurrahman/Sites/ddr/public dan /Users/faridabdurrahman/Sites/ddr/public/api), bikin file .htaccess lalu ketikan tiga baris tentang Mod_Rewrite ini:

 

Selesai!

Yang bikin berjam-jam sakit kelapa adalah di langkah 2b. Clean URL ga mau jalan kalau settingan direktorinya AllowOverride None. Tapi untuk yang dibikin virtual host-nya (http://danareksadebtreserch.com -> /Users/faridabdurrahman/Sites/ddr/public), dia ga mau dibikin AllowOverride All seperti untuk http://danareksadebtresearch.com/api (-> /Users/faridabdurrahman/Sites/ddr/public/api). Setelah coba-coba, ternyata saya harus setting rada advance dengan pilihan AllowOverride Options FileInfo untuk settingan direktori folder public.

Demikian sharing dari saya buat saya. Semoga berguna. Salam otak kanan!

 

Advertisements

2 thoughts on “Mod_Rewrite yang Bikin Sakit Kepala

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s