2 votes

Générer une page 404 correcte pour les sites bloqués via /etc/hosts au lieu de rediriger vers localhost

J'ai bloqué certains sites Web en modifiant le fichier /etc/hosts et en ajoutant plusieurs entrées de ligne de la manière suivante :

0.0.0.0 www.domain.com

Et ça marche. La seule chose est que lorsque l'on visite un site web qui est bloqué, le navigateur est redirigé vers mon http://localhost Le résultat est une liste de répertoires ou une présentation de site Web qui s'exécute dans l'environnement racine de mon hôte local.

Ce n'est pas un très gros problème, mais je préfère une erreur standard qui mentionne que le site web ne peut être visité (par exemple par une page 404). Cela est-il possible ?

3voto

RHaguiuda Points 757

Je suppose que vous utilisez un serveur web local ? Il semble que ce soit le cas, donc je vais le supposer. De plus, j'espère que vous utilisez Apache, bien que d'autres serveurs web aient probablement les mêmes capacités, mais je n'ai pas d'expérience avec les autres.

Si vous bloquez un grand nombre de sites, cela peut devenir trop compliqué, mais vous pourriez probablement créer un domaine virtuel avec une page de démarrage pour votre page 404. Si vous connaissez PHP, vous pourriez probablement la personnaliser avec le nom du site qui a été bloqué pour un message plus informatif.

Le fichier hosts resterait le même, et les ajouts seraient faits au fichier de configuration d'Apache dans /etc/apache2/sites-enabled . Au départ, il n'y a que la racine du document, définie, je pense, comme étant /var/www vous pouvez non seulement changer cela, mais aussi ajouter un nombre quelconque de répertoires supplémentaires avec des noms et des alias associés.

Mon idée est d'en ajouter un pour un nouveau répertoire qui contiendrait votre page 404. Décidez d'un répertoire et d'un "nom de site", et ajoutez une nouvelle entrée au fichier. Par exemple :

<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>

Vous pouvez ajouter une entrée à votre fichier hosts avec localhost my404.loc Vous pourrez ensuite accéder à la page localement pour la tester en entrant le code suivant http://my404.loc . Avec un peu de chance, vous pouvez également y accéder en www.domain.com si vous avez cette entrée dans votre fichier hosts. Vous devriez pouvoir ajouter des entrées "ServerAlias" au fur et à mesure que vous en ajoutez dans le fichier hosts.

J'espère que tout cela est clair pour vous, et peut-être même utile. Si vous pensez que c'est utile, mais que ce n'est pas clair, n'hésitez pas à en demander plus.

Je ne peux rien garantir, car je n'ai jamais vraiment essayé :)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X