RSS Feed

Mod_Rewrite yang Bikin Sakit Kepala

Posted on

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!

 

About mangkum

Models maker and fans: building view-controller-models, financial models, statistical models and a fan of super models.

2 responses »

  1. Pingback: Mengaktifkan Apache dan PHP di OSX 10.7 Lion « ___Right Neuro

  2. Option directive terutama Followsymlinks tidak diizinkan di shared hosting masterweb http://kb.masterweb.net/beta/index.cgi/read/Options_di_htaccess_dilarang. Options FollowSymlinks, dapat dipakai oleh seorang user untuk mengintip source code situs milik user lain di server dan file-file lainnya yang seharusnya tidak bisa dilihat langsung oleh si user.

    Gatau deh kalau di tempat lain.

    Reply

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

%d bloggers like this: