Kode respons HTTP yang semantik benar untuk situasi ini adalah 403 Forbidden :
Server mengerti permintaan itu, tetapi menolak untuk memenuhinya. Otorisasi tidak akan membantu dan permintaan TIDAK HARUS diulang. Jika metode permintaan itu bukan KEPALA dan server ingin mengumumkan kepada publik mengapa permintaan itu belum terpenuhi, itu HARUS menggambarkan alasan penolakan di entitas. Jika server tidak ingin membuat informasi ini tersedia untuk klien, kode status 404 (Tidak Ditemukan) dapat digunakan sebagai gantinya.
(Meskipun definisi dari respons 403 mengatakan bahwa "otorisasi tidak akan membantu", IMO ini harus dipahami sebagai merujuk secara khusus ke otentikasi HTTP Basic / Digest , di mana kode status 401 yang tidak sah harus digunakan sebagai gantinya. Karena Anda tidak menggunakan salah satu dari metode otentikasi tersebut, 403 adalah kode status yang sesuai dalam kasus Anda.)
Namun, dengan menggunakan kode status 403 mengungkapkan (atau setidaknya sangat menyiratkan) fakta bahwa ada adalah halaman dengan URL yang, meskipun server menolak untuk menyampaikan hal itu. Karena ini adalah sesuatu yang Anda mungkin ingin sembunyikan dari pengganggu potensial, standar HTTP / 1.1 secara eksplisit memungkinkan kode status 404 Tidak Ditemukan dikembalikan sebagai gantinya ( penekanan milik saya):
Server belum menemukan sesuatu yang cocok dengan Permintaan-URI. Tidak ada indikasi yang diberikan apakah kondisinya sementara atau permanen. Kode status 410 (Hilang) HARUS digunakan jika server mengetahui, melalui beberapa mekanisme yang dapat dikonfigurasi secara internal, bahwa sumber daya lama tidak tersedia secara permanen dan tidak memiliki alamat penerusan.
Kode status ini biasanya digunakan ketika server tidak ingin mengungkapkan dengan tepat mengapa permintaan ditolak, atau ketika tidak ada respons lain yang berlaku.
Tentu saja, untuk membuat penyembunyian seperti itu sama sekali efektif, halaman kesalahan 404 yang Anda kembalikan harus tampak sama dengan apa yang Anda kembalikan untuk halaman yang sebenarnya tidak ada. Kalau tidak, itu hanya akan menipu penyerang paling bodoh dan paling kasual. (Jika tujuan Anda hanya untuk menjaga halaman dari indeks Google, respons 403 juga akan melakukannya.)
Bagaimana dengan kemungkinan tanggapan lain yang disarankan dalam pertanyaan Anda dan jawaban lainnya?
Seperti yang saya sebutkan sebelumnya, saya tidak percaya bahwa respons 401 sesuai di sini. Ini mungkin bekerja dalam praktik, sejauh sebagian besar browser dan mesin pencari akan memperlakukan kode respons 4 xx seri salah format atau tidak dikenal seolah-olah itu adalah 404, tetapi itu masih tidak valid sesuai dengan spesifikasi HTTP, dan tidak ada alasan praktis untuk lebih menyukainya lebih dari 403 atau 404.
Mengenai penggunaan 301 (atau 302) redirect ke halaman "404 error" yang terpisah, itu adalah praktik yang mengerikan yang disebarkan oleh tutorial mod_rewrite yang ceroboh, dan sama sekali tidak memiliki fitur penukaran dibandingkan dengan mengembalikan respons 404 secara langsung:
Ini membingungkan pengunjung, karena URL yang mereka coba kunjungi diganti dengan URL halaman kesalahan. Dengan demikian, mereka melihat pesan yang mengatakan bahwa mereka telah mencapai halaman yang tidak ada, tetapi tidak ada indikasi yang mudah terlihat dari apa halaman yang mereka coba kunjungi, dan karena itu tidak dapat dengan mudah mencoba strategi pemulihan seperti memperbaiki kesalahan ketik yang jelas di URL, atau salin dan tempel ke Google atau Wayback Machine.
Ini dapat membingungkan mesin pencari, terutama jika halaman 404 Anda tidak diijinkan di robots.txt , atau jika itu salah mengembalikan 200 respons OK daripada kode status 404 nyata ( "soft 404" ), berpotensi menyebabkan halaman 404 Anda muncul di pencarian hasil untuk istilah pencarian acak.
Ini menyebabkan (sejumlah kecil) beban tambahan pada server Anda, meningkatkan waktu respons kepada pengunjung dan berpotensi memperlambat mesin pencari merayapi situs Anda, karena setiap permintaan untuk halaman yang tidak ada (atau disembunyikan) sekarang melibatkan putaran HTTP tambahan- perjalanan.
Ini tidak memiliki manfaat SEO, karena "jus tautan" dari halaman yang dialihkan ke halaman 404 tetap hilang.
(Tentu saja, salah satu situasi di mana Anda lakukan ingin menggunakan 301 redirect bukan respon 404 adalah ketika halaman sebenarnya telah pindah, dan Anda dapat mengarahkan pengunjung ke lokasi yang benar. Tapi itu tidak terjadi dibahas di sini.)
Akhirnya, saya ingin menggemakan sentimen, yang diungkapkan dalam banyak komentar di sini, bahwa hanya "menyembunyikan" halaman admin Anda seperti ini bukan pengganti yang memadai untuk otentikasi berbasis kata sandi yang tepat . Yang mengatakan, jika Anda sudah memiliki sistem otentikasi yang aman diatur, menyembunyikan halaman mungkin berguna sebagai lapisan tambahan, meskipun yang cukup lemah, dalam pendekatan pertahanan mendalam .