Accueil du site > Scripts > Modifier le 404 sous AlternC

Modifier le 404 sous AlternC

mardi 17 février 2009, par Fil

Pour gérer les différents sites web hébergés, AlternC utilise le module Apache mod_vhost_alias, configuré avec la règle suivante :

VirtualDocumentRoot /var/alternc/dns/%-2.1/%0

%-2.1/%0 signifie : prendre le premier caractère de l’avant-dernier membre du nom de domaine, suivi du nom de domaine lui-même. Ainsi le domaine null.rezo.net sera recherché à l’emplacement /var/alternc/dns/r/null.rezo.net.

Lorsqu’on se rend sur un domaine que le DNS fait pointer vers notre serveur, mais qui n’est pas encore configuré du côté de l’admin AlternC, cet emplacement n’existe pas, et Apache renvoie une bonne vieille erreur 404.

Notre but ici est de différencier deux types d’erreur 404 :
- domaine non installé (le cas décrit ci-dessus)
- fichier absent dans un domaine installé (le cas « classique »)

Pour cela je procède comme suit : dans /etc/apache/httpd.conf j’ajoute un contrôleur d’erreur 404 à l’URI /http_errors/404.php et un alias de /http_errors/ vers /var/alternc/http_errors/. Ce sont les deux dernières lignes de ce bloc :

<VirtualHost $IP$:80>
 # ***ALTERNC_ALIASES***
 # ***MAILMAN***
 Alias /marchives/ /var/lib/mailman/archives/public/
 Alias /mimages/   /usr/share/images/mailman/
 alias /admin/sql  /usr/share/phpmyadmin
 alias /webmail    /usr/share/squirrelmail
 Alias /icons/     /usr/share/apache/icons/

 UseCanonicalName    Off
 VirtualDocumentRoot /var/alternc/dns/%-2.1/%0

 Alias /http_errors/ /var/alternc/http_errors/
 ErrorDocument 404 /http_errors/404.php
</VirtualHost>

Dans le répertoire (à créer) /var/alternc/http_errors/ j’installe un script 404.php avec le code suivant :

On relance Apache. Et voilà.

1 Message

  • Petit bonus : un favicon par défaut Le 18 février 2009 à 00:04 , par Fil

    Comme les 404 sont très souvent dues au fichier favicon.ico manquant, ajoutons ceci en tête du script :

    # favicon.ico par defaut
    if ($_SERVER['REQUEST_URI'] == '/favicon.ico') {
     header("HTTP/1.0 200 OK");
     header("Content-Type: image/x-icon");
     readfile('favicon.ico');
     exit;
    }

    On peut trouver des favicon sympas à l’adresse http://www.favicon.cc/?action=icon&....