Gere uma página 404 apropriada para sites bloqueados via / etc / hosts em vez de redirecionar para localhost

2

Eu bloqueei alguns sites editando / etc / hosts e adicionando várias entradas de nova linha da seguinte maneira:

0.0.0.0 www.domain.com

E isso funciona. A única coisa é: quando um site é visitado e é bloqueado, o navegador é redirecionado para o meu http://localhost , resultando em uma listagem de diretório ou apresentação de site que está sendo executada dentro do meu ambiente raiz localhost.

Não é um problema muito grande, mas eu prefiro um erro padrão que menciona que o site não pode ser visitado (por exemplo, por uma página 404). Isso é possível?

    
por grrrbytes 17.09.2012 / 02:40

1 resposta

3

Eu suponho que você esteja executando um servidor web local? Parece que você é, então vou assumir isso. Além disso, espero que você esteja usando o Apache, embora outros servidores da web provavelmente tenham os mesmos recursos, mas eu não tenho experiência com nenhum outro.

Se você estiver bloqueando um grande número de sites, isso pode se tornar um problema, mas você provavelmente poderá criar um domínio virtual com uma página inicial para sua página 404. Se você conhece PHP, provavelmente poderá personalizá-lo com o nome do site que foi bloqueado para uma mensagem mais informativa.

O arquivo hosts permaneceria o mesmo, e as adições seriam feitas no arquivo de configuração do Apache em /etc/apache2/sites-enabled . Inicialmente, há apenas a raiz do documento, definida, como /var/www ; você pode não apenas alterar isso, mas também pode adicionar qualquer número de diretórios adicionais com nomes e aliases associados.

Minha ideia é adicionar um para um novo diretório que contenha sua página 404. Decida em um diretório e um "nome do site" e adicione uma nova entrada ao arquivo. Por exemplo:

<VirtualHost *:80>
    <Directory /var/www/my404>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    DocumentRoot /var/www/my404/
    ServerName my404.loc
    ServerAlias www.domain.com
</VirtualHost>

Você pode adicionar uma entrada ao seu arquivo de hosts com localhost my404.loc e, em seguida, poderá acessar a página localmente para teste inserindo http://my404.loc . Espero que você também possa acessá-lo por www.domain.com se você tiver essa entrada em seu arquivo de hosts. Você deve poder continuar adicionando mais entradas "ServerAlias" à medida que adiciona mais ao arquivo de hosts.

Espero que isso esteja claro para você e talvez até útil. Se você acha que é útil, mas não está claro, sinta-se à vontade para perguntar mais.

Não há garantias, já que eu nunca tentei realmente essa coisa toda. :)

    
por Marty Fried 17.09.2012 / 03:33