Mandrake 10 - httpd.conf et ErrorDocument

Bonjour tout le monde ..
Je viens de transferer mon site sur un serveur perso
'Mandrake 10 , Apache, Php , MySql'
Le tout fonctionne relativement bien ..
Le seul 'hic c'est la gestion des erreurs ( 400,401,403,404 ... )
Je me suis cassé la tête mais rien à faire .. pas moyen d'avoir ma page d'erreur perso .. ;o(

Voici un aperçu ( résumé de httpd.conf et commonhttpd.con)

User apache
Group apache

ServerRoot /etc/httpd/2.0
#ServerName localhost
#LockFile /etc/httpd/httpd.lock
PidFile /var/run/httpd.pid
ErrorLog logs/error_log
LogLevel warn
DocumentRoot /var/www/html/homepage

#Restricted set of options
<Directory />
Options -All -Multiviews
AllowOverride None
Order deny,allow
Deny from all
</Directory>

#--------------------------------------------------------------------------
<Directory /var/www/html/homepage>
Options none
AllowOverride none

Order allow,deny
Allow from all

ErrorDocument 400 /erreur.php?err=400
ErrorDocument 401 /erreur.php?err=401
ErrorDocument 403 /erreur.php?err=403
ErrorDocument 404 /erreur.php?err=404
ErrorDocument 500 /erreur.php?err=500

</Directory>
#---------------------------------------------------------------------------

PS: J'ai vérifier le truc d' I.E avec la taille de la page d'erreur ( 512 je crois ..?) mais ca doit le faire ..

Un début de solution ?? rien trouvé sur les != forums ..

A+ , merci

5 réponses

  1. Justement voila à quoi sert la config que je t'ai filé
    à rediriger les erreurs vers le serveur

    si tu veux voir comment réagit ton serveur
    fait un "tail -f /var/log/http/error_log" ( c'est ce que t'a dans ton fichier )

    par contre si tu as un proxy certaine erreur seront renvoyé par lui
    1. ok .. merci. je teste tout ca dès que j'ai le temps ..

      : asevere

      Le problème que sous mon poste win xp lorsque j'appelle une page bidon, IE me sors sa propre page d'erreur et idem sur le serveur ..
      comme si la config n'est pas pris en compte .. bizarre ??
      1. Chez moi ça marche

        je créé un script toto.php
        <?
        echo $id;
        ?>
        je le met dans /var/www/error/
        je met apache comme propriétaire "chown apache.apache toto.php"

        j'édite dans commonhttpd.conf

        #
        Alias /error/ "/var/www/error/"
        #
        <Directory "/var/www/error/">
        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
        LanguagePriority fr sv
        ForceLanguagePriority Prefer Fallback
        </Directory>
        #
        ErrorDocument 404 /error/toto.php?id=404
        j'appelle une page bidon

        J'ai le résultat "404" dans le navigateur

        J'éspère que cela peut aller pour toi
        1. Webmaster
          Salut, quelques précisions seraient les bienvenues :)

          Le probleme au final il est où ?
          La page d'erreur n'est pas appelée, ou elle ne s'execute pas comme il faut?

          Que se passe t il exactement quand tu demandes une page inexistante ?

          ...Mana mana
             Tutudutu...
          1. Et si tu essayais ça

            ErrorDocument 400 /erreur.php?id=400
            ErrorDocument 401 /erreur.php?id=401
            ErrorDocument 403 /erreur.php?id=403
            etc ...
            plutot que
            ErrorDocument 400 /erreur.php?err=400
            ErrorDocument 401 /erreur.php?err=401
            ErrorDocument 403 /erreur.php?err=403
            ErrorDocument 404 /erreur.php?err=404
            ErrorDocument 500 /erreur.php?err=500

            Bon courage
            1. Salut fablac ...

              Pourquoi proposes-tu cela ..? une raison particulière ..??

              ErrorDocument 400 /erreur.php?id=400 à la place de
              ErrorDocument 400 /erreur.php?err=400 ...???

              Je ne vois pas .. dans erreur.php je récupère la variable 'err' avec GET .. alors pourquoi mettre 'id' ..?

              je veux bien changer mon code php si utile .. ( suis pas devant le serveur la, donc pas essayer ..)

              PS: l'appel direct à erreur.php fonctionne (le passage de la variable 'err' aussi ..)

              Merci .. A+