Judul artikel ini panjang ya? “Mencegah sub domain diakses sebagai folder oleh domain induk”. Apa maksudnya? Begini lho. Misalkan saya punya domain mawan.net. Saya ingin membuat sub domain, misalkan belajar.mawan.net
Bila kita memakai VPS, kita mudah saja menaruh folder mawan.net dan belajar.mawan.net di mana pun sehingga dua folder ini tidak bisa saling mengakses. Tapi bila kita memakai shared web hosting (khususnya yang memakai cPanel), maka sub domain belajar.mawan.net akan disimpan di root folder domain induknya sehingga orang lain bisa mengakses dengan alamat mawan.net/belajar
Bagaimana cara mencegahnya?
Bila memakai Apache, maka buat file .htaccess di mawan.net/belajar dengan isi berikut ini:
1 2 3 4 5 6 7 8 9 10 |
<IfModule mod_rewrite.c> RewriteEngine On # Bila tidak diawali dengan: belajar. RewriteCond %{HTTP_HOST} !^belajar\. [NC] # Munculkan pesan error Forbidden. # RewriteRule ^ - [F] # Atau munculkan pesan error 404 (not found). RewriteRule ^ /index.php?template=error404 [L,QSA] </IfModule> |
Mudah kan?
Ada lagi satu keanehan pada cPanel, dan bagi saya ini sangat mengganggu.
Misalkan saya ingin menambahkan addon domain (bukan sub domain) example.com.
Walau pun mawan.net dan example.com adalah dua domain yang derajatnya sama, tapi cPanel memaksa kita agar juga membuat sub domain yaitu example.mawan.net atau example.com.mawan.net.
Apa solusinya? Mudah saja. Buat file .htaccess berikut ini:
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} example.mawan.net$ RewriteRule ^(.*)$ "http://mydomain.com/404" [R=301,L] </IfModule> |
Ganti example.mawan.net dengan domain milik anda.
Sebenarnya, addon domain pada cPanel bisa ditempatkan di luar public_html. Tapi setting ini harus dilakukan dari level WHM alias si pemilik web hosting yang bisa melakukan.
Caranya: WHM > Tweak settings > Restrict document roots to public_html = off.
Beberapa web hosting mengizinkan pengguna untuk menaruh addon domain di luar public_html, misalkan HostUs dan InterServer. Tapi tetap saja sub domain itu harus dibuat. Entah apa maksudnya. Menyebalkan sekali.