Sebelum meluncurkan situs ke publik, praktik terbaik adalah menutup akses publik dan crawler. Di bawah ini langkah urutannya — mudah diikuti, lengkap dengan file yang bisa Anda copy–paste.
Ringkasan singkat:
- Buat
robots.txt(blok semua bot).- Temukan path absolut server dengan
phpinfo.php.- Buat file
.htpasswd(username:hash) di lokasi aman.- Tambahkan blok Basic Auth ke
.htaccessdi root domain.- Tes lalu hapus file sementara (
phpinfo.php) setelah selesai.
1) Buat robots.txt untuk memblokir semua crawler
Letakkan robots.txt di root domain (contoh path di Hostinger):/home/<USER>/domains/contoh.com/public_html/robots.txt
Isi file (robots.txt):
User-agent: *
Disallow: /
Langkah (File Manager):
- Buka Hostinger → File Manager →
domains/contoh.com/public_html. - Click New file → beri nama
robots.txt. - Paste isi di atas → Save.
Verifikasi: buka https://contoh.com/robots.txt — harus menampilkan dua baris di atas.
Catatan:
robots.txthanya permintaan sopan ke crawler (Google, Bing akan patuh). Untuk keamanan nyata (mencegah akses publik) tetap gunakan Basic Auth.
2) Temukan path absolut server (bantu agar AuthUserFile benar)
Kita perlu path absolut ke file .htpasswd (mis. /home/u1234567/.htpasswd). Cara paling mudah adalah membuat file PHP sementara.
Buat file phpinfo.php pada folder root domain:/home/<USER>/domains/contoh.com/public_html/phpinfo.php
Isi file phpinfo.php:
<?php
echo "SCRIPT_FILENAME: " . __FILE__ . "\n\n";
phpinfo();
Langkah:
- Buat file
phpinfo.phplewat File Manager, paste kode di atas, simpan. - Akses
https://contoh.com/phpinfo.phpdi browser. - Perhatikan baris
SCRIPT_FILENAMEorDOCUMENT_ROOT→ catat path absolut, contoh:
/home/u1234567/domains/contoh.com/public_html/phpinfo.php
- Dari contoh path di atas, lokasi yang aman untuk
.htpasswdbiasanya:
/home/u1234567/.htpasswd
PENTING: setelah mendapat path, hapus phpinfo.php segera (mengungkap info server rawan disalahgunakan).
3) Buat file .htpasswd (username + hashed password)
Anda dapat membuat file .htpasswd via SSH (jika tersedia) atau membuat file secara manual di File Manager menggunakan hash yang dihasilkan.
Opsi A — (Paling direkomendasikan) Buat via SSH
Jika Anda punya akses SSH ke server:
# buat file baru dan simpan user 'admin' dengan password 'admin1234'
htpasswd -cb /home/u1234567/.htpasswd admin admin1234
# -c : create file; -b : menggunakan password di commandline (hati-hati history)
# atau tanpa -b agar diminta input password interactif:
htpasswd -c /home/u1234567/.htpasswd admin
Setelah perintah ini, file
/home/u1234567/.htpasswdberisiusername:hash.
Opsi B — (Tanpa SSH) Buat file .htpasswd manual
- Jika tidak ada SSH, Anda bisa membuat
.htpasswddi local lalu upload ke/home/<USER>/.htpasswd. - Format baris:
username:hashedpassword
Contoh (sudah berisi hash untuk password admin1234):
admin:$apr1$L1sz5qIZ$4omYoA9dM83O2cru5LPae0
Buat file .htpasswd berisi baris di atas dan simpan di lokasi aman (di luar public_html), misal /home/<USER>/.htpasswd.
Perizinan file: set 0644 (rw-r--r--) agar server bisa membaca:
chmod 644 /home/u1234567/.htpasswd
Opsi C — Gunakan generator online
Jika mau generate hash online, gunakan generator tepercaya (hati-hati memasukkan password sensitif ke layanan pihak ketiga). Contoh generator yang sering dipakai:
- https://www.web2generators.com/apache/htpasswd-generator
- https://www.htaccesstools.com/htpasswd-generator/
(copy hasil username:hash ke file .htpasswd)
4) Edit .htaccess pada root domain untuk mengaktifkan Basic Auth
File .htaccess berada di:/home/<USER>/domains/contoh.com/public_html/.htaccess
Tambahkan blok ini PADA ATAS semua isi .htaccess yang lain (sebelum # BEGIN WordPress):
# Basic Auth - temporary site protection (put this at very top)
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /home/u1234567/.htpasswd
Require valid-user
Ganti
/home/u1234567/.htpasswdsesuai path absolut hasil dari langkah 2.
Contoh .htaccess lengkap (WordPress):
# Basic Auth - temporary
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /home/u1234567/.htpasswd
Require valid-user
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
...
</IfModule>
# END WordPress
Catatan penting:
- Blok harus di atas aturan WordPress agar login muncul sebelum WP diproses.
- Jika server Anda murni Nginx,
.htaccesstidak berlaku — gunakan panel Hostinger Password Protect atau konfigurasi Nginx di level server.
5) Verifikasi
- Buka
di browser incognito → seharusnya muncul dialog username/password.https://contoh.com/- Username:
admin - Password:
admin1234
- Username:
- Buka
https://contoh.com/robots.txt→ pastikan berisiDisallow: /. - Hapus
phpinfo.php(sangat penting).
6) Opsi tambahan & troubleshooting
- Jika ingin mengizinkan IP tertentu (mis. IP tim dev), gunakan kombinasi:
<RequireAny> Require ip 203.0.113.45 Require valid-user </RequireAny>Ganti203.0.113.45dengan IP Anda. - Jika dialog login muncul tapi password ditolak:
- Pastikan
AuthUserFilemenunjuk path absolut yang benar. - Pastikan format
.htpasswdusername:hash, bukanusername:plaintext. - Pastikan permission file 644.
- Pastikan server mendukung
.htaccess(Apache / LiteSpeed). Jika Nginx, gunakan panel Hostinger.
- Pastikan
- Jika terjadi 500 error setelah edit
.htaccess→ rollback perubahan, periksa error_log (atau hubungi support hosting). Biasanya sintaks.htaccessyang salah penyebabnya.
7) Setelah Launch — membalik proteksi
- Hapus atau komentari blok Basic Auth di
.htaccess. - Update
robots.txtagar mengizinkan indexing (atau hapusDisallow). - Non-aktifkan noindex di plugin SEO jika sebelumnya Anda aktifkan.
- Submit sitemap ke Google Search Console bila perlu.
Contoh file & perintah siap pakai (copy–paste)
robots.txt
User-agent: *
Disallow: /
phpinfo.php (temporary)
<?php
echo "SCRIPT_FILENAME: " . __FILE__ . "\n\n";
phpinfo();
.htpasswd (contoh baris, sudah hash password admin1234)
admin:$apr1$L1sz5qIZ$4omYoA9dM83O2cru5LPae0
Blok .htaccess (letakkan paling atas)
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /home/u1234567/.htpasswd
Require valid-user
Keamanan & privasi
- Jangan biarkan
phpinfo.phponline lebih lama dari perlu. Hapus segera. - Hindari memasukkan password sensitif ke generator online jika Anda khawatir — lebih baik generate hash di server via
htpasswdoropenssl passwd -apr1. - Simpan file
.htpasswddi luarpublic_htmluntuk mencegah akses langsung.



