O código de resposta HTTP semanticamente correto para essa situação seria 403 Proibido :
O servidor entendeu a solicitação, mas está se recusando a atendê-la. A autorização não ajudará e a solicitação NÃO DEVE ser repetida. Se o método de solicitação não foi HEAD e o servidor deseja tornar público o motivo pelo qual a solicitação não foi atendida, DEVE descrever o motivo da recusa na entidade. Se o servidor não desejar disponibilizar essas informações ao cliente, o código de status 404 (Não encontrado) poderá ser usado.
(Embora a definição da resposta 403 diga que "a autorização não ajudará", na IMO isso deve ser entendido como uma referência específica à autenticação HTTP Básica / Digest , para a qual o código de status 401 Não Autorizado deve ser usado. Como você não está usando qualquer um desses métodos de autenticação, 403 é o código de status apropriado no seu caso.)
No entanto, usando um código 403 estatuto revela (ou pelo menos implica fortemente) o fato de que não é uma página com essa URL, mesmo que o servidor se recusa a entregá-lo. Como isso é algo que você pode ocultar de possíveis invasores, o padrão HTTP / 1.1 permite explicitamente que o código de status 404 Não encontrado seja retornado ( ênfase minha):
O servidor não encontrou nada que corresponda ao Request-URI. Nenhuma indicação é dada sobre se a condição é temporária ou permanente. O código de status 410 (ido) DEVE ser usado se o servidor souber, através de algum mecanismo configurável internamente, que um recurso antigo está permanentemente indisponível e não possui endereço de encaminhamento.
Esse código de status é comumente usado quando o servidor não deseja revelar exatamente por que a solicitação foi recusada ou quando nenhuma outra resposta é aplicável.
Obviamente, para tornar essa ocultação eficaz, a página de erro 404 que você retornar precisa parecer idêntica à que você retorna para páginas reais inexistentes. Caso contrário, apenas enganará os atacantes mais idiotas e casuais. (Se seu objetivo é apenas manter as páginas fora do índice do Google, uma resposta 403 também fará isso.)
E as outras respostas possíveis sugeridas na sua pergunta e as outras respostas?
Como observei anteriormente, não acredito que uma resposta 401 seja apropriada aqui. Ele pode funcionar na prática, na medida em que a maioria dos navegadores e os motores de busca irá tratar qualquer 4 malformado ou não reconhecida xx código de resposta série como se fosse um 404, mas ainda não é válido de acordo com o HTTP especificação, e não há nenhuma razão prática a preferi-la mais de 403 ou 404.
Quanto ao uso de um redirecionamento 301 (ou 302) para uma página separada "erro 404", essa é uma prática horrível , disseminada por tutoriais desleixados de mod_rewrite, e não possui recursos de resgate em comparação com o retorno direto de uma resposta 404:
É confuso para os visitantes, pois o URL que eles estavam tentando visitar é substituído pelo URL da página de erro. Portanto, eles veem uma mensagem dizendo que chegaram a uma página inexistente, mas não há nenhuma indicação facilmente visível do que a página estava tentando visitar e, portanto, não podem facilmente tentar estratégias de recuperação, como corrigir erros de digitação óbvios no URL, ou copie e cole no Google ou na Wayback Machine.
Isso pode confundir os mecanismos de pesquisa, especialmente se a sua página 404 não for permitida no robots.txt , ou se ela retornar incorretamente uma resposta 200 OK, em vez de um código de status 404 real ( "soft 404" ), potencialmente fazendo com que sua página 404 apareça na pesquisa resultados para termos de pesquisa aleatórios.
Isso causa (uma pequena quantidade de) carga extra em seus servidores, aumenta o tempo de resposta aos visitantes e potencialmente diminui a velocidade dos mecanismos de pesquisa que rastreiam seu site, pois toda solicitação de uma página inexistente (ou oculta) agora envolve um processo HTTP adicional- viagem.
Não possui benefício de SEO, pois qualquer "suco de link" de páginas redirecionadas para uma página 404 é perdido de qualquer maneira.
(Claro, a única situação em que você faz querer usar um redirecionamento 301 em vez de uma resposta 404 é quando a página realmente foi movido, e você pode redirecionar o visitante para sua localização correta. Mas esse não é o caso discutido aqui.)
Por fim, gostaria de ecoar o sentimento, expresso em muitos comentários aqui, de que apenas "ocultar" suas páginas de administração como essa não é um substituto adequado para a autenticação adequada por senha . Dito isto, se você já possui um sistema de autenticação seguro configurado, ocultar as páginas pode ser útil como uma camada extra, embora bastante fraca, em uma abordagem de defesa em profundidade .