Retornando o código 404 para tentativas não autorizadas

5

Eu tenho um diretório admin no meu servidor web (http://test.com/admin) e não quero que partes não autorizadas acessem este diretório / admin /. Em vez disso, quero retornar o código de erro 404 para todos os acessos não autorizados .

Minha pergunta é: existe alguma maneira de retornar o código de erro 404 para todas as tentativas de acesso, exceto alguns endereços IP específicos?

Meu servidor web é o Apache no Linux (plesk).

    
por Willy 27.05.2009 / 18:02

4 respostas

5

Bem, feche:

<Location /admin>
     Order deny,allow
     Allow from 10.0.0.1
     Allow from 192.168.1.1
     Deny from all
</Location>

Embora o que isso realmente faça seja retornar um 403 Forbidden, não um 404 Not Found, que é, você sabe, correto.

Se você colocar isso em um .htaccess no diretório admin, não precisará do contêiner Location. O exemplo é escrito para um arquivo de configuração de servidor ou host virtual.

Veja também os documentos do mod_access.

Por que vale a pena, com o tempo gasto cada vez mais eu acho valioso colocar o administrador do site em um host virtual totalmente separado.

    
por 27.05.2009 / 18:02
15

Você pode usar mod_rewrite para fazer isso.

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !=10.0.0.1 [OR]
RewriteCond %{REMOTE_ADDR} !=10.0.0.1
RewriteRule ^admin($|/) - [L,R=404]

Observe que o R=404 flag requer pelo menos o Apache 2.1.1.

    
por 27.05.2009 / 18:02
0

verifique o atributo "allow from" no guia de configuração

    
por 27.05.2009 / 18:02
0

Abaixo de litespeed , a seguinte pequena variação com mod_rewrite funcionou para mim:

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^1.2.3.4 [OR]
RewriteCond %{REMOTE_ADDR} !^1.2.3.4
RewriteRule (.*) - [R=404,L]
    
por 16.02.2015 / 23:03