Membuat Virtual Subdomain Menggunakan .htaccess

Dengan memanfaatkan modul mod_rewrite dan wilcard DNS, kita dapat membuat sebuah virtual subdomain dari sebuah nilai variabel.

Pernah suatu ketika salah satu klien saya minta dibuatkan sebuah aplikasi website, dimana setiap member/anggota yang terdaftar di dalam website tersebut, secara otomatis akan memiliki sebuah subdomain berupa ID masing-masing anggota.
Misalnya :
http://namadomain.com/?member=opik
Nilai variabel “opik” tersebut dapat dibuat menjadi sebuah subdomain,
http://opik.namadomain.com

Saya mencoba berselancar di Internet dan menemukan banyak sekali forum (luar negeri) yang membahas hal ini. Banyak sekali contoh-contoh kode yang yang katanya benar dan berhasil jalan. Tetapi setelah saya cobakan, carut marut semua, hahahahaha. Entahlah saya sendiri tidak tahu salahnya dimana. Akhirnya saya memulai eksperimen dengan dibantu oleh rekan saya Erwin, dan server pinjaman dari warnet Relax.

Berikut langkah-langkah yang saya lakukan, dan berhasil diterapkan pada 2 web server yang berbeda.

  1. Aktifkan Wilcard DNS
  2. Jika anda memiliki akses WHM, tambahkan baris berikut :
    *.domain.com. A 1.2.3.4
    Ganti 1.2.3.4 dengan IP server anda.

    Cara untuk mengaktifkan wilcard dns :
    Login ke WHM. Lalu pilih menu Edit DNS Zone dan pilih domain yang akan diaktifkan wilcard dns-nya. Setelah itu tambahkan baris seperti pada gambar dibawah ini.

    WHM - Mengaktifkan Wilcard DNS

    WHM - Mengaktifkan Wilcard DNS

    Sedangkan jika anda tidak memiliki akses WHM, anda dapat menghubungi technical support dimana anda menyewa hosting, dan meminta untuk diaktifkan Wilcard DNS pada domain anda.

  3. Aktifkan modul mod_rewrite
  4. Untuk mengaktifkan mod_rewrite, buka file httpd.conf, cari baris #LoadModule rewrite_module modules/mod_rewrite.so dan hilangkan tanda #.

  5. Aktifkan Virtualhost dan pada baris ServerAlias rubah menjadi ServerAlias *.namadomain.com
  6. Buat file .htaccess
  7. RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/index\.php
    RewriteCond %{HTTP_HOST} !^www\.namadomain\.com [NC]
    RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.namadomain\.com
    RewriteRule ^([^.*])?$ /index.php?member=%2 [L]

  8. Selesai

Semoga saja penjelasan saya diatas tidak keliru, karena saya melakukannya sudah lama sekali dan tidak dicatat. Kalau keliru ya maklum sajalah, soalnya sudah terlalu banyak memori yang terpakai untuk “nguli”.

34 comments

  1. harus edit apache.conf, berarti harus ‘menguasai’ web server. klo cuma hosting doang, apa boleh?

  2. Yup betul sekali pak de.
    Kalau sampean ndak punya akses WHM, langsung kontak saja penjual hostingannya.
    Bilang minta diaktifkan wilcard DNS-nya.

    Kalau yang jual hosting gak paham juga, suruh mereka berhenti saja jualan hosting.
    Hehehehe

  3. Sandi :
    Apakah anda sudah melakukan kofigurasi pada WHM (lihat point no. 1)?
    Setahu saya domain co.cc tidak diberikan akses whm.

    “RewriteRule ^([^.*])?$ /index.php?member=%2 [L]”
    (Lihat pada point 4 baris terakhir)
    Arti dari baris terakhir diatas adalah : jikalau ada tulisan (apapun itu) dibelakang nama domain yang diakhiri dengan titik (misalnya: tubex.logic99biz.co.cc), maka sistem akan menampilkan data yang diambil dari url http://logic99biz.co.cc/index.php?member=tubex.

  4. WHM = Web Host Manager. Adanya dihostingan mas.
    Saya sudah lihat di http://tubex.logic99biz.co.cc/ <--- yang keluar adalah halaman cpanel. Itu berarti .htaccess sampean sudah benar, tinggal melakukan setingan seperti pada point 1. Maaf, diatas tadi saya salah tulis. "Setahu saya domain co.cc tidak diberikan akses whm." <-- ini seharusnya penyedia hostingan (shared hosting) πŸ˜€ Coba anda kontak penyedia hosting tempat anda menghostingkan web. Minta untuk diaktifkan wilcard DNS-nya. Jika technical supportnya sudah pengalaman, pasti mereka tau apa yang anda maksudkan.

  5. Saya coba, kontak penyedia layanan hosting saya, katanya harus pake paket vps hosting untuk bisa diaktifkan wildcard DNS nya pa, gimana yah? trima kasih

  6. Pasti beli hostingannya di bakulan lokal (baca: penjual hosting dalam negeri) ya πŸ˜€

    Memang sih, anda harus punya minimal account resellerlah untuk mendapatkan hak akses WHM, ndak perlu harus sampai punya vps.

    Tapi sebenarnya kalau anda beli hostingan langsung di luar, kemungkinan pasti akan bisa dibantu untuk mengaktifkan wilcard dns.

  7. Monggo.. kang.
    Nanti kita bisa sama-sama berdiskusi, karena sayapun masih perlu banyak belajar.

  8. saya punya akses WHM tapi dimana menambahkan *.domain.com. A 1.2.3.4 nya, terus saya muter2 nyari file httpd.conf ga ada yah. trims

  9. Ivan : coba baca lagi dokumentasi penggunaan WHM. Saya sudah coba cari-cari hasil printscreen saya dulu, tapi tidak ketemu.

  10. pagi mas opik, wah dari kemarin muter2 terus n googling, ga nemu2 tuch yg ngejelasin dimana letaknya *.domain.com. A 1.2.3.4 ama httpd.conf.
    plis screenshotnya dong mas biar lebih jelas, trims

  11. Halo mas Ivan.
    Mengenai httpd.conf, anda tidak usah pusingkan. Karena untuk nyetting httpd.conf itu ya lewat WHM saja mas. Jika anda sudah menambahkan baris “*.domain.com. A 1.2.3.4”, maka otomatis akan terupdate di httpd.conf.

    Gambarnya sudah saya update pada tulisan diatas.

  12. met malem mas opik, trims atas penjelasannya, saya sudah paham sekarang, hanya saja saya tidak bisa melakukannya nich πŸ™
    WHM yg saya akses tidak ada link Edit DNS Zone pada DNS Functionnya.
    share dong dimana beli hostingan yg kaya mas opik, dan tentunya yg gak terlalu mahal πŸ™‚ terima kasih

  13. Ah masak sih WHM ndak ada akses DNS Zone?Jangan-jangan itu bukan WHM tapi Cpanel?

    Setahu saya semua WHM pasti ada fasilitas untuk edit dns zone ( CMIIW ).
    Btw, sampean ini belinya hostingan biasa atau account reseller/vps?

  14. RewriteRule ^([^.*])?$ /indomockup/index.php/member/profile/%2 [L]

    begitulah baris terakhir yang saya buat. tapi tetep bermasalah. mohon dikoreksi bagian mana yang salahnya. Thanks

  15. Coba mas Sandi googling kembali,perbedaan penggunaan tanda “[L], [R], [L, R], [NC], dll”.
    Mungkin sebelum kita melakukan sebuah modifikasi code, alangkah baiknya jika kita paham dulu makna dasar dari sebuah kode.
    Tanda “[L]” itu bersifat statis.

    Saya mungkin agak susah juga ngasih advice, jika saya sendiri tidak tau errornya seperti apa. Kalo ada contoh online aplikasi yang anda buat, mungkin saya bisa memberikan masukan.

  16. Mas Sandi, maaf untuk diskusi selanjutnya…
    Mungkin saya baru bisa melanjutkan diskusi kembali hari senin depan. Dikarenakan besok saya harus tugas luar kota. Jadi mohon maaf, jika saya terlambat untuk menjawab posting anda.

  17. Om, baru ngerti sedikit saya, keinginan saya bersama teman saya juga sama. yaitu membuat subdomain gratis bagi para pengunjung… tapi, saya masih bingung dengan tutorial diatas, kira-kira Cms apa ya yang mudah digunakan untuk membuat subdomain ini??????// mohon penjelasannya, terima kasih..

  18. Kang_ripay: Kalau mau membuat fasilitas subdomain gratis & serba otomatis, pakai saja wp-mu (http://mu.wordpress.org/download/). Hanya saja rules setingan wilcard dns diatas harus diikuti :D.

    Mungkin cara paling gampang agar anda lebih gampang mengerti, silahkan anda cari teman yang punya akses WHM, lalu pinjam sebentar untuk percobaan.

  19. nah… pernah juga kucoba WP mu… mungkin kegagalannya karena gak ada akses whm itu x ya…???? pertanyaan berlanjut.. kira-kira, kalo saya menginginkan 1 domain 2 hosting berbeda gimana?? misal, untuk domainsaya.com di tempat hosting satuhosting.com dan subdomain.domainsaya.com saya tempatkan di duahosting.com gimana??? bisa gak???? terus…. kalo saya membuat sebuah web seperti co.cc yang mengarahkan NS ya.. kira-kira apa yang harus saya kuasai??? mohon pencerahannya nih… karena saya baru banget mengenal internet… besok saya atdateng lagi dan mudah-mudahan sudah ada balesannya.. terimakasih..

  20. 1. Bisakah domain dan subdomain menggunakan NS yang berbeda?
    Jawabannya bisa. Konfigurasi ini bisa diset melalui WHM. Jika anda tidak punya akses WHM, mungkin bisa minta tolong penjual hosting anda untuk mensetkan. Contoh konfigurasinya (di WHM) klik disini.

    2. “kalo saya membuat sebuah web seperti co.cc yang mengarahkan NS yya.. kira-kira apa yang harus saya kuasai?”
    Untuk pertanyaan yang satu ini saya sendiri belum begitu menangkap apa yang anda maksudkan.

    Semoga jawaban ini bisa sedikit membantu anda. Terima kasih.

  21. Saya punya website iklan, namun ingin menambahkan fasilitas supaya user bisa membuat toko sendiri menggunakan nama user masing-masing dan memilih template sesuai dengan yang telah disediakan, dan system otomatis membuat nama subdomain misal tokotest.nama_domain.com, kendalanya setelah mempraktekan adalah bagaimana kita mengarahkan ke suatu folder yang berisi template toko user yang bersangkutan, contoh tokotest.nama_domain.com, akan mengarah pada folder template toko user itu sendiri, tidak membuka website utama.

  22. Kang Endang,

    Apa yang kang Endang ditanyakan bisa dieksekusi melalui script php/asp/jsp/script yg digunakan.

    Sebagai gambaran, kang Endang buat saja 1 buat tabel (database) khusus untuk template web yang tersedia. Sehingga nantinya masing-masing user dapat menyimpan template yang dipilih di tabel user.

  23. susah-susah buat dns sendiri,pakai open dns aja sudah,dan download applikasi open dns updaternya,…. saya memakai sim gsm 3 (three) dengan kecepatan 384 kbps,dengan di batasin Quota,setelah saya memakai open dns,sama sekali Quota saya tdk berkurang dan secara otomatis IP server saya di pindah ke sulawesi oleh open dns yang di olah oleh applikasi tersebut,,yang seharusnya IP server saya di jakarta. sekarang wah cukup cepat dengan speed rata-rata 284 kbps murni di lihat dengan task manager….. mudah-mudahan ini berguna bagi neter yang memakai operator gsm,,,,,….saya memakai laptop sony VAIO pentium 3 ram 512 mb…

  24. gag perlu lewat empunya hosting gan,, sudah ada di cPanel -> redirect. Disana ada piihan Wild Card redirect. Dan sudah saya coba bisa.

  25. Misal saya punya website mywebsite.com dan mywebsite.com/site/”*” dan “*” saya ingin jadikan subdomain. contoh :
    mywebsite.com/site/blog –> blog.mywebsite.com
    mywebsite.com/site/my –> my.mywebsite.com
    mywebsite.com/site/you –> you.mywebsit.com
    dll. (Semua yang ada di folder site/* saya ingin jadikan subdomain)

    Bagaimana isi .htaccess nya?

Leave a Reply

Your email address will not be published. Required fields are marked *