Cara Mengunci Situs Staging Sebelum Launch (robots.txt + Basic Auth)

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:

  1. Buat robots.txt (blok semua bot).
  2. Temukan path absolut server dengan phpinfo.php.
  3. Buat file .htpasswd (username:hash) di lokasi aman.
  4. Tambahkan blok Basic Auth ke .htaccess di root domain.
  5. 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):

  1. Buka Hostinger → File Manager → domains/contoh.com/public_html.
  2. Click New file → beri nama robots.txt.
  3. Paste isi di atas → Save.

Verifikasi: buka https://contoh.com/robots.txt — harus menampilkan dua baris di atas.

Catatan: robots.txt hanya 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:

  1. Buat file phpinfo.php lewat File Manager, paste kode di atas, simpan.
  2. Akses https://contoh.com/phpinfo.php di browser.
  3. Perhatikan baris SCRIPT_FILENAME or DOCUMENT_ROOT → catat path absolut, contoh:
/home/u1234567/domains/contoh.com/public_html/phpinfo.php
  1. Dari contoh path di atas, lokasi yang aman untuk .htpasswd biasanya:
/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/.htpasswd berisi username:hash.

Opsi B — (Tanpa SSH) Buat file .htpasswd manual

  1. Jika tidak ada SSH, Anda bisa membuat .htpasswd di local lalu upload ke /home/<USER>/.htpasswd.
  2. 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:

(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/.htpasswd sesuai 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, .htaccess tidak berlaku — gunakan panel Hostinger Password Protect atau konfigurasi Nginx di level server.

5) Verifikasi

  1. Buka https://contoh.com/ di browser incognito → seharusnya muncul dialog username/password.
    • Username: admin
    • Password: admin1234
  2. Buka https://contoh.com/robots.txt → pastikan berisi Disallow: /.
  3. 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> Ganti 203.0.113.45 dengan IP Anda.
  • Jika dialog login muncul tapi password ditolak:
    • Pastikan AuthUserFile menunjuk path absolut yang benar.
    • Pastikan format .htpasswd username:hash, bukan username:plaintext.
    • Pastikan permission file 644.
    • Pastikan server mendukung .htaccess (Apache / LiteSpeed). Jika Nginx, gunakan panel Hostinger.
  • Jika terjadi 500 error setelah edit .htaccess → rollback perubahan, periksa error_log (atau hubungi support hosting). Biasanya sintaks .htaccess yang salah penyebabnya.

7) Setelah Launch — membalik proteksi

  1. Hapus atau komentari blok Basic Auth di .htaccess.
  2. Update robots.txt agar mengizinkan indexing (atau hapus Disallow).
  3. Non-aktifkan noindex di plugin SEO jika sebelumnya Anda aktifkan.
  4. 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.php online lebih lama dari perlu. Hapus segera.
  • Hindari memasukkan password sensitif ke generator online jika Anda khawatir — lebih baik generate hash di server via htpasswd or openssl passwd -apr1.
  • Simpan file .htpasswd di luar public_html untuk mencegah akses langsung.
Contact Us
Tags
Share this content

See other articles

Want to create a website?

Let's talk about your website needs.
Get a Free Consultation Now