Membedah Mod_rewrite pada WordPress

November 3, 2006

 

Muh Hasan Tanjung

recosmic@gmail.com

http://www.recosmic.dd.am

Lisensi Dokumen:

Copyright © 2003-2006 IlmuKomputer.Com

Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan

disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat

tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang

disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang,

kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.

Jika Anda menggunakan wordpress sebagai engine blog dan terinstall dalam server maka jika

Anda dapat mengakses melalui FTP atau file Anda tersimpan pada local server maka

file .htaccess akan Anda temui, itu juga bila server Anda mengijinkan untuk menggunakan

fasilitas ini. Untuk cara mengaktifkan mod_rewrite liat artikel pada ilmukomputer.org dengan

judul mod_rewrite pada Apache.

Saya tidak akan menjelaskan bagaimana cara menginstall wordpress pada server, Anda bisa

mencari ini di sumber internet atau ikuti help ada. Tapi penulis akan membahas tentang

file .htaccess yang ada dalam bundle tersebut.

1. Bukalah file .htaccess

   Buka editor Anda lalu cari file dengan nama .htaccess.

2. Memahami isi rule mod_rewrite

   Bagian ini kita mengenal dan mendalami perintah yang ada dalam file .htaccess.

RewriteEngine On

RewriteBase /

RewriteRule

^category/(.*)/(feed|rdf|rss|rss2|atom)/?$ /wp-feed.php?category

_name=$1&feed=$2 [QSA]

RewriteRule ^category/?(.*) /index.php?category_name=$1 [QSA]

RewriteRule

^author/(.*)/(feed|rdf|rss|rss2|atom)/?$ /wp-feed.php?author_nam

e=$1&feed=$2 [QSA]

RewriteRule ^author/?(.*) /index.php?author_name=$1 [QSA]

RewriteRule

^([0-9]{1,2})/?([0-9]{1,2})?/?([0-9]{4})?/?([_0-9a-z-]+)?/?([0-9

]+)?/?$/index.php?day=$1&monthnum=$2&year=$3&name=$4&page=$5

[QSA]

RewriteRule

^([0-9]{1,2})/?([0-9]{1,2})/([0-9]{4})/([_0-9a-z-]+)/(feed|rdf|r

ss|rss2|atom)/?$ /wp-feed.php?day=$1&monthnum=$2&year=$3&name=$4

&feed=$5 [QSA]

RewriteRule

^([0-9]{1,2})/?([0-9]{1,2})/([0-9]{4})/([_0-9a-z-]+)/trackback/?

Komunitas eLearning IlmuKomputer.Com

Copyright © 2003-2006 IlmuKomputer.Com

1


$ /wp-trackback.php?day=$1&monthnum=$2&year=$3&name=$4 [QSA]

RewriteRule ^feed/?([_0-9a-z-]+)?/?$ /wp-feed.php?feed=$1 [QSA]

RewriteRule

^comments/feed/?([_0-9a-z-]+)?/?$ /wp-feed.php?feed=$1&withcomme

nts=1 [QSA]

RewriteEngine On

Perintah ini digunakan untuk mengaktifkan atau non aktifkan runtime pada engine

rewrite. Jika di set pada OFF maka module tidak mengeksekusi runtime. Maka set pada

ON.

RewriteBase

Directroy terinstallnya wordpress, jika Anda menginstall di /www/wp maka rubah

RewriteBase /wp. Hal ini perlu dilakukan jika tidak ingin layout Anda amburadul

karena kita akan merewrite menjadi bentuk directory.

RewriteRule

^category/(.*)/(feed|rdf|rss|rss2|atom)/?$

tegory_name=$1&feed=$2 [QSA]

/wp-feed.php?ca

Anda perhatikan pada rule ini akan merubah hasil query wp-feed.php dengan output

bermacam-macam seperti rdf, rss, rss2, atom. Jadi misalkan kita memanggil

recosmic.com/category/computer/rss/ maka akan di eksekusi oleh script

wp-feed.php?category_name=$1&feed=rss dengan flag [QSA] – Query String

Appended flag.

RewriteRule

[QSA]

^category/?(.*)

/index.php?category_name=$1

Ketika kita memanggil link recosmic.com/category/kamputer maka rule akan merewrite

oleh script index.php?category_name=komputer.

RewriteRule

^author/(.*)/(feed|rdf|rss|rss2|atom)/?$

or_name=$1&feed=$2 [QSA]

/wp-feed.php?auth

Link yang tertampil recosmic.com/author/aksan/rss/ sebenarnya akan dieksekusi oleh

script wp-feed.php?author_name=aksan$feed=rss.

RewriteRule ^author/?(.*) /index.php?author_name=$1 [QSA]

Link yang tertampil pada browser recosmic.com/author/aksan sebenarnya akan

dieksekusi oleh script index.php?author_name=aksan.

RewriteRule

^([0-9]{1,2})/?([0-9]{1,2})?/?([0-9]{4})?/?([_0-9a-z-]+)?/

?([0-9]+)?/?$ /index.php?day=$1&monthnum=$2&year=$3&name=$

4&page=$5 [QSA]

Komunitas eLearning IlmuKomputer.Com

Copyright © 2003-2006 IlmuKomputer.Com

2


Link yang tertampil pada browser recosmic.com/12/02/2006/apache_pada_windows/2/

sebenarnyaakandieksekusiolehscript

index.php?day=12&monthnum=02&year=2006&name=apache_pada_windows&page=

2. Jika dilihat untuk tanggal dan bulan diberi dua digit yaitu {1,2} dengan batasan

antara [0-9].

RewriteRule

^([0-9]{1,2})/?([0-9]{1,2})/([0-9]{4})/([_0-9a-z-]+)/(feed

|rdf|rss|rss2|atom)/?$ /wp-feed.php?day=$1&monthnum=$2&yea

r=$3&name=$4&feed=$5 [QSA]

Linkyangtertampilpadabrowser

recosmic.com/12/02/2006/apache_pada_windows/rss/ sebenarnya akan dieksekusi oleh

scriptwp-feed.php?

day=12&monthnum=02&year=2006&name=apache_pada_windows&feed=rss.Jika

dilihat untuk tanggal dan bulan diberi dua digit yaitu {1,2} dengan batasan antara

[0-9].

RewriteRule

^([0-9]{1,2})/?([0-9]{1,2})/([0-9]{4})/([_0-9a-z-]+)/track

back/?$ /wp-trackback.php?day=$1&monthnum=$2&year=$3&name=

$4 [QSA]

Linkyangtertampilpadabrowser

recosmic.com/12/02/2006/apache_pada_windows/trackback/ akan dieksekusi oleh

scriptwp-trackback.php?

day=12&monthnum=02&year=2006&name=apache_pada_windows.

RewriteRule

[QSA]

^feed/?([_0-9a-z-]+)?/?$

/wp-feed.php?feed=$1

Link yang tertampil pada browser recosmic.com/feed/rss/ akan dieksekusi oleh script

wp-feed.php?feed=rss.

RewriteRule

^comments/feed/?([_0-9a-z-]+)?/?$

hcomments=1 [QSA]

/wp-feed.php?feed=$1&wit

Link yang tertampil pada browser recosmic.com/comment/feed/rss/ akan dieksekusi

oleh script wp-feed.php?feed=rss&withcomments=1.

Selesailah kita membedah file .htaccess pada engine wordpress, Anda dapat melakukan

perubahan sesuai dengan keinginan Anda, tentunya Anda harus tahu dan mempelajari

struktur pemrograman yang digunakan oleh wordpress. Misalnya yang saya lakukan

adalah recosmic.com/12/02/2006/apache_pada_windows/page-2.html maka source pada script

saya harus dirubah agar ada penambahan page-2 dan ada penambahan .html. Silahkan kreasikan

kemampuan Anda. Pada kesempatan lain kita akan membahas mod_rewrite pada joomla, phpbb

forum dan yang lainnya.

Selamat mencoba

Referensi

Komunitas eLearning IlmuKomputer.Com

Copyright © 2003-2006 IlmuKomputer.Com

3


http://www.wordpress.com

http://httpd.apache.org/docs/mod/mod_rewrite.html

http://www.workingwith.me.uk/blog/

http://corz.org/blog/

http://apachelounge.com

Biografi

Muh Hasan Tanjung. Dilahirkan di Jakarta 8 maret 1981 dan telah

menyelesaikan S1 di Teknik Elektro – Universitas Gadjah Mada,

Jogjakarta tahun 2004. Selama kuliah hobi dengan dunia komputer

terutama internet, sehingga pernah menggerjakan proyek pembuatan web

dengan menggunakan ASP, PHP, MySql dan Access. Proyek perdananya

adalah membuat web Bulaksumur Pos sebuah media komunitas

mahasiswa UGM dengan ASP dan Access, kemudian Kick Off. Projek

lainnya adalah membuat website MLM Acintya.net dan dilanjutkan

dengan Ayudya.net dan Javaart.net (situs penjualan handycraft melalui

web). Selain itu penulis juga sedang mengembangkan Sistem Informasi

Klinik web based.

Menuliskan mod_rewrite

November 3, 2006

 

Muh Hasan Tanjung

recosmic@gmail.com

http://www.recosmic.dd.am

Lisensi Dokumen:

Copyright © 2003-2006 IlmuKomputer.Com

Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan

disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat

tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang

disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang,

kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.

Setelah menginstall mod_rewrite pada Apache (lihat artikel Mod_rewrite Pada Apache, bisa

anda lihat di ilmukomputer.org atau recosmic.dd.am) sekarang kita akan mencoba langsung

praktek dengan menuliskan contoh sederhana beserta penjelasan ringan.

1. Buatlah file .htaccess

   Buka editor Anda lalu save dengan nama .htaccess, ingat bukan file.htaccess atau yang

   lainnya, karena tidak akan dibaca oleh Apache.

2. Menulis rule mod_rewrite

   Bagian ini merupakan hal yang bisa dibilang ”mudah” jika Anda sudah biasa ☺, tapi untuk

   gampangnya ikutin aja deh. Kita akan mencoba bedah kode dibawah ini

Options +FollowSymLinks -MultiViews

RewriteEngine On

RewriteRule ^categories/$ index.php?category=categories [L]

Options +FollowSymLinks –MultiViews

Tambahkan perintah ini pada setiap awal perintah, tapi bisa juga tidak.

RewriteEngine On

Perintah ini digunakan untuk mengaktifkan atau non aktifkan runtime pada engine

rewrite. Jika di set pada OFF maka module tidak mengeksekusi runtime. Maka set pada

ON.

RewriteRule

Perintah ini sebagai perintah yang akan dieksekusi oleh module rewrite, satu

Rewriterule merupakan satu perintah sehingga kita dapat menambahkan sesusai

kebutuhan kita, bisa tiga, empat atau sembilan.

^

Start of line anchor, awal dari komen perintah.

categories/

hasil dari rewriting yang diinginkan sesuai dengan kebutuhan kita saja. Bisa terlihat

menjadi sangat panjang ataupun simple. Pada contoh ini categories dianggap sebagai

direktori bukan sebuah nama file, Anda dapat merubahnya menjadi sebuah file dengan

Komunitas eLearning IlmuKomputer.Com

Copyright © 2003-2006 IlmuKomputer.Com

1


perintah : categories.html

$

End of line anchor, akhir dari komen perintah.

index.php?category=categories

Merupakan dinamis link awal yang ingin kita buat sederhana, pada contoh ini

menggunakan PHP.

[L]

   Flag sesuai dengan kebutuhan kita, diawali dengan [ dan diakhiri ]. ”L” artinya stop

   proses dari rewriting dan jangan melakukan rewriting rule lagi.

Simpan file tersebut dan upload ke server Anda, taruh di main directory.

3. Rubah script yang Anda punya.

   Pada bagian ini merupakan bagian yang agak rumit, karena harus merubah script Anda, so

   pastikan backup dulu file Anda sehingga ketika dibutuhkan lagi masih ada dan dapat

   dipergunakan lagi. Ingat selalu backup file Anda sebelum merubah.

   Link-link yang terdapat dalam script Anda bisa bermacam-macam lokasinya, so Anda

   harus tahu banyak tentang struktur programmingnya jika Anda menggunakan script orang

   lain. Lain cerita jika Anda memprograming sendiri. Link-link yang ada biasanya dalam:

        a. Links pada templates file

             Anda harus jeli mencari link-link yang ada dan akan dirubah. Beberapa

             pengembang meletakkan kumpulan linknya dalam bentuk template atau

             dikumpulkan menjadi satu.

        b. Links pada source file

             Beberapa pengembang meletakkan link pada source file nya, seperti index.php,

             forum.php, function.php dan sebagainya.

        c. Links disembarang tempat.

             Pengembang/programmer yang seperti ini yang agak berat, karena linknya

             disembarang tempat, hubungi programmernya untuk minta bantuan.

        Rubahlah link yang ada hubungannya dengan index.php?category=categories

        menjadi categories/ atau categories.html sesuai dengan rulenya. Silahkan

        buka browser favorit Anda panggil localhost/categories atau localhost/categories.html

        sesuaikan dengan rule yang telah dibuat. Dan jika anda menggunakan server berbayar

        silahkan panggil domain Anda dan lokasi filenya (www.namadomain.com/categories/

        atau www.namadomain.com/categories.html)

Contoh lainnya

Misalkan kita memiliki banyak link seperti berikut:

       index.php?category=categories

       index.php?category=contact

       index.php?category=images

       index.php?category=login

       index.php?category=logout

       index.php?category=new

       index.php?category=rss

       index.php?category=unpublished

sehingga kita dapat menuliskan rule menjadi

Options +FollowSymLinks -MultiViews

RewriteEngine On

RewriteRule ^ ([a-z]+)/$ index.php?category=$1 [L]

Komunitas eLearning IlmuKomputer.Com

Copyright © 2003-2006 IlmuKomputer.Com

2


Rewriterule diatas akan merubah link yang ada setelah category menjadi kumpulan abjad

([a-z]+), jika angka dengan ([0-9]). Sehingga jika kita ketik localhost/contact akan

dikenal dan dirubah menjadi index.php?category=contact.

Selamat mencoba

Referensi

http://httpd.apache.org/docs/mod/mod_rewrite.html

http://www.workingwith.me.uk/blog/

http://corz.org/blog/

http://apachelounge.com

http://www.webhostgear.com

Biografi

Muh Hasan Tanjung. Dilahirkan di Jakarta 8 maret 1981 dan telah

menyelesaikan S1 di Teknik Elektro – Universitas Gadjah Mada,

Jogjakarta tahun 2004. Selama kuliah hobi dengan dunia komputer

terutama internet, sehingga pernah menggerjakan proyek pembuatan web

dengan menggunakan ASP, PHP, MySql dan Access. Proyek perdananya

adalah membuat web Bulaksumur Pos sebuah media komunitas

mahasiswa UGM dengan ASP dan Access, kemudian Kick Off. Projek

lainnya adalah membuat website MLM Acintya.net dan dilanjutkan

dengan Ayudya.net dan Javaart.net (situs penjualan handycraft melalui

web). Selain itu penulis juga sedang mengembangkan Sistem Informasi

Klinik web based.

Selain sebagai pegawai sebuah perusahaan swasta yang bergerak dibidang manufaktur (Spv.

Produksi), tidak menyurutkan minatnya dalam mendalami dan mengembangkan pengetahuan

tentang web programming. Penulis juga aktif menuangkan idenya dalam blog miliknya selain

itu juga mengembangkan blog secara mandiri juga, kunjungi di www.recosmic.dd.am

Mod_rewrite pada Apache

November 3, 2006


 

Muh Hasan Tanjung

recosmic@gmail.com

http://www.recosmic.dd.am

 

 

Lisensi Dokumen:

Copyright © 2003-2006 IlmuKomputer.Com

Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.

Copyright © 2003-2006 IlmuKomputer.Com  Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.

 

Pernah tidak Anda melihat suatu link seperti ini:

 

www.supermall.com/product/detail/cam-12.html

singsue.wordpress/archive/2006/05/12/suatu_malam_yang_indah.html

http://www.detiknews.com/index.php/detik.read/tahun/2006/bulan/10/tgl/07/time/121950/idnews/691003/idkanal/10 (link yang dimiliki detik.com)

http://www.kompas.com/ver1/Nusantara/0610/07/100455.htm (link yang dimiliki kompas.com)

 

Tentunya link diatas lebih mudah diingat dan dibacanya juga oleh kita sebagai pengunjung, selain itu juga search engine seperti google.com dan yahoo.com akan indexing halaman web menjadi lebih mudah dan sering. Hal ini bisa juga dibilang sebagai salah satu SEO (Search Engine Optimizing) dan cleans URL. Pastinya kita bertanya-tanya bagaimana merubah link yang panjang menjadi begitu simplenya dan tidak perlu menggunakan struktur suatu bahasa pemrograman.

 

Kita akan coba membahas bagaimana merubah link yang panjang menjadi begitu simple dan clean URL. Jika Anda menggunakan server Apache maka hal ini dapat dilakukan dengan menambah suatu modul yang dibuat oleh Ralf S. Engelschall yaitu mod_rewrite (www.engelschall.com/sw/mod_rewrite).

 

Mod_rewrite digunakan merubah URL menggunakan perintah-perintah rewriting engine (berdasarkan parser REGEX) yang diminta on the fly (secara langsung). Untuk menggunakan modul ini minimum versi yang dibutuhkan adalah Apache v 1.2 atau versi yang terbaru. Anda dapat menginstall mod_rewrite sebagai modul pada server Anda.

 

Install mod_rewrite pada Apache

 

Sebelum menginstall modul ini cek dulu apakah modul ini sudah terinstall apa belum dengan menggunakan phpinfo() jika anda menggunakan php sebagai web programming. Pada bagian Loaded Modules akan tampak modul apa saja yang terinstall, carilah kata-kata mod_rewrite jika ada maka anda tidak perlu install modul tersebut, jika belum maka persiapkan diri untuk menginstallnya.

 

 

Penulis menggunakan Apache/2.0.58, PHP/5.1.4, WAMP bundle server dengan Win XP sebagai system operasinya sehingga akan dijelaskan konfigurasi berdasarkan konfigurasi tersebut. Untuk menginstall modul ini cari file httpd.conf untuk WAMP terdapat pada “C:/wamp/Apache2/conf/” sedangkan jika anda menggunakan Apache biner cek “C:/apache/conf/”. Buka file tersebut dengan editor yang Anda sukai, notepad, wordpad, dreamweaver, dll. Cari baris kata yang mengandung mod_rewrite, file httpd.conf saya kata mod_rewrite terdapat pada baris 165. 

 

123 #

124 # Dynamic Shared Object (DSO) Support

125 #

126 # To be able to use the functionality of a module which was built as a DSO you

127 # have to place corresponding `LoadModule’ lines at this location so the

128 # directives contained in it are actually available _before_ they are used.

129 # Statically compiled modules (those listed by `httpd -l’) do not need

130 # to be loaded here.

131 #

 

165 # LoadModule rewrite_module modules/mod_rewrite.so

 

Kemudan hilangkan tanda # pada baris tersebut sehingga menjadi:

 

165  LoadModule rewrite_module modules/mod_rewrite.so

 

Simpan file httpd.conf tersebut kemudian restart Apache Anda, maka module mod_rewrite siap digunakan. Untuk memastikan kembali cek dengan phpinfo().

 

Menjalankan Misi

 

Setelah instalasi modul selesai maka selanjutnya adalah membuat agar Apache on the fly merewrite URL kita sesuai keinginan maka harus menulis rule-rule nya dalam file yang namanya “.htaccess”, ingat nama filenya “.htaccess” bukan “sesuatu.htaccess” atau “httaccess.httacces”. File .htaccess selain untuk menuliskan mod_rewrite bisa juga digunakan untuk proteksi suatu file atau directory dan sebagainya. Cara membuat filenya gampang-gampang saja, buka editor Anda dan save as dengan nama ”.htaccess”.

Jika anda menghosting ke suatu provider biasanya kita tidak diperbolehkan menggunakan file tipe ini ”.htaccess”, maka tanya provider anda untuk mengijinkannya dan jelaskan alasannya secara baik-baik. Jika Anda menggunkan di localserver sebagai test maka konfigurasi file ini ada dalam https.conf, cari lokasi direktori dimana Anda meletakkan file-file internet Anda. File internet saya tarus di ”E:/hasan/internet” sedangkan untuk konfigurasi awal ”C:/apache/htdocs”.

 

253 <Directory “E:/hasan/internet”>

267 Options Indexes FollowSymLinks

274 AllowOverride all  #yang harus Anda rubah

280 Order Allow,Deny

281 Allow from all

284 </Directory>

 

Bagian ini untuk membatasi penggunaan “.htaccess” pada server, untuk keamanan biasanya di setting “None” dalam hal ini untuk tes fungsi mod_rewrite maka rubah menjadi “All”.

 

Setelah semua persiapan telah dilakukan maka siap deh bertempur dengan segala kekuatan. Sekarang buka file .htaccess Anda untuk mengecek apakah bisa digunakan dan tulis code dibawah ini lalu save.

 

Options +FollowSymLinks
RewriteEngine On
RewriteRule google http://www.google.com/? [R,L]

 

Panggil browser Anda dan ketik localhost/google atau www.namadomain.com/google, jika langsung redirect ke halaman google.com berarti mod_rewrite Anda berjalan sesuai rencana, sekarang tinggal menyesuaikan sesuai kebutuhan Anda.

 

Referensi

http://www.engelschall.com/pw/apache/rewriteguide

http://httpd.apache.org/docs/mod/mod_rewrite.html

http://httpd.apache.org/docs/misc/rewriteguide.html

http://apache-server.com/tutorials/ATusing-htaccess.html

http://www.recosmic.dd.am

 

 

Biografi

Muh Hasan Tanjung. Dilahirkan di Jakarta 8 maret 1981 dan telah menyelesaikan S1 di Teknik Elektro – Universitas Gadjah Mada, Jogjakarta tahun 2004. Selama kuliah hobi dengan dunia komputer terutama internet, sehingga pernah menggerjakan proyek pembuatan web dengan menggunakan ASP, PHP, MySql dan Access. Proyek perdananya adalah membuat web Bulaksumur Pos sebuah media komunitas mahasiswa UGM dengan ASP dan Access, kemudian Kick Off. Projek lainnya adalah membuat website MLM Acintya.net dan dilanjutkan dengan Ayudya.net dan Javaart.net (situs penjualan handycraft melalui web). Selain itu penulis juga sedang mengembangkan Sistem Informasi Klinik web based.

 

Selain sebagai pegawai sebuah perusahaan swasta yang bergerak dibidang manufaktur (Spv. Produksi), tidak menyurutkan minatnya dalam mendalami dan mengembangkan pengetahuan tentang web programming. Penulis juga aktif menuangkan idenya dalam blog miliknya selain itu juga mengembangkan blog secara mandiri juga, kunjungi di www.recosmic.dd.am

 

Hello world!

November 3, 2006

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!


Follow

Get every new post delivered to your Inbox.