Skip to content

Tips dan Trik URL Rewriting, Bag. 5

Sedikit berbeda dengan pembahasan URL Rewriting sebelumnya (bagian 1, 2, 3 dan 4) yang lebih banyak menyoroti masalah struktur URL, kali ini saya ingin membahas penggunaan file .htaccess untuk memproteksi file seperti image, audio, atau dokumen lainnya agar tidak bisa diakses secara langsung dari situs lain.

Anda pernah mendengar istilah inline linking atau hot linking? Oke, kalau masih asing dengan istilah tersebut, berikut ini saya kutipkan pengertian apa itu inline linking yang saya ambil dari situs Wikipedia.

“Inline linking (also known as hotlinking, leeching, piggy-backing, direct linking, offsite image grabs) is the use of a linked object, often an image, from one site into a web page belonging to a second site. The second site is said to have an inline link to the site where the object is located.”

Pada prinsipnya, hot-linking yaitu memanfaatkan resource (misalnya gambar) yang berada di sebuah situs Internet untuk dipakai di halaman web pada situs yang lainnya. Contohnya yaitu memasang gambar dari layanan image sharing seperti Flickr atau Photobucket pada halaman posting di blog WordPress.Com.

Tentu Anda bisa membayangkan bagaimana seandainya gambar-gambar yang ada di server situs kita di-link secara langsung oleh situs lain. Akibat yang mungkin tidak kita sadari secara langsung yaitu terjadinya pencurian bandwidth situs kita oleh situs lain. Kalau jatah bandwidth situs kita itu sangat besar barangkali tidak akan ada masalah, akan tetapi kalau hanya kecil tentu efeknya sangat besar.

Untungnya kita bisa mengakali hal tersebut dengan .htaccess. Modul yang kita pakai masih sama, yaitu mod_rewrite. Untuk memproteksi gambar agar tidak di-link oleh situs lain caranya yaitu sebagai berikut. Pertama, kita harus mengecek apakah domain yang me-request gambar tersebut merupakan domain kita sendiri atau situs lain dengan menggunakan variabel HTTP_REFERER.

Contohnya yaitu sebagai berikut:

RewriteCond %{HTTP_REFERER} !^mydomain.com [NC]
RewriteCond %{HTTP_REFERER} !^$ [NC]

Tanda seru di atas merupakan bentuk ungkapan dari if ... pada fungsi RewriteCond. Selanjutnya jika HTTP_REFERER tersebut bukan domain kita, maka request tersebut harus kita alihkan dengan teknik URL Rewriting seperti kode di bawah ini.

RewriteRule .*\.(jpe?g|gif|bmp|png)$ /kosong.gif [L]

Jadi jika ada situs lain yang mencoba-coba untuk melakukan hot-linking atau melakukan request secara langsung file yang berupa jpeg, gif, bmp dan png, yang akan muncul pada situs mereka hanya gambar kosong (kosong.gif). Hehehe… kasian deh… :-)

Berikut ini kode selengkapnya.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^mydomain.com [NC]
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /kosong.gif [L]
</IfModule>

Barangkali ada yang mempunyai ide yang lebih menarik?

Tulisan Terkait:

Bagaimana Komentar Anda?

Monggo kalau Anda mau mengomentari tulisan di atas! Bertanya atau mengkritik juga boleh, tapi jangan terlalu menyakitkan :).

  • simon | January 8th, 2011 jam 8:48 pm

    nice artikel mas, pertama agak bingung ma mod_rewrite tapi gara2 baca artikelnya mas jadi ada sedikit pencerahan ni… singkat, jelas dan bermutu. mampir ke blog ane ya mas.

  • Wahyu Wibowo | January 17th, 2011 jam 10:30 am

    @simon, asal telaten pasti bisa.

  • denz | April 8th, 2011 jam 3:12 pm

    terima kasih untuk artikelnya mas…sangat membantu bgt bagi newbie seperti saya…
    O iya untuk bagian :
    RewriteRule .*\.(jpe?g|gif|bmp|png)$ /kosong.gif [L]
    itu emang jpe?g ada tanda (?) ya mas…

  • Wahyu Wibowo | April 18th, 2011 jam 11:14 am

    @denz, kalau penasaran coba dihilangkan tanda itu. Trus cek utk berbagai format gambar jpg/jpeg

Tinggalkan Pesan