Aller au contenu

Erreur404 ne prend pas en compte le PHP


Sujets conseillés

Bonjour à tous,

Après des questions à mon hébergeur concernant des problèmes d'erreur 404 personnalisé, il me répond :

Sous Apache, il est possible d'avoir ses propres pages d'erreurs.

Pour cela, vous devez créer un fichier .htaccess avec le contenu

suivant, il sera à placé à la racine du répertoire contenant le site

web.

ErrorDocument 400 /errors/badrequest.html

[...]

ErrorDocument 500 /errors/serverr.html

Cependant, les extensions .php ne peuvent être personnalisées par cette

méthode.

C'est au moins la réponse la plus vague que j'ai lue... Le peu de connaissances que j'ai ne m'indiquaient pas qu'une page erreur en PHP ne pouvait marcher... C'est donc seulement chez mon hébergeur ?

Et comment faire pour mon erreur 404 personnalisée ? Je vais pas les renvoyer vers une page HTML, les menus ne seront pas les bons...

Enfin bon, je trouve ça assez spécial comme problème !

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Je ne vois pas trop en quoi c'est gênant de faire une page 404 personnelle en HTML pur et dur. Si pour certaines anciennes URL, tu souhaites faire un traitement spécial, tu pourrais passer par une redirection 301 (si ton hébergeur l'autorise). Question référencement, ce serait même mieux qu'une 404.

Jean-Luc

Lien vers le commentaire
Partager sur d’autres sites

JeanLuc, le problème c'est que mes menus sont différents si tu es logué ou pas, et si je veux faire une page 404 avec quand même un menu comme sur les autres pages (parce que c'est, amha, un des buts de l'erreur personnalisée), je dois utiliser le PHP.. Sinon je laisse l'erreur de l'hébergeur, m'enfin, c'est pas le top.

Je vais tester l'url rewriting, j'avoue que j'y avais pas pensé.. Ce serait fort que ça marche quand même ! Je vous tiens au courant.

EDIT : non, en fait j'ai mal cerné le problème et mal expliqué aussi, fatigue je crois...

En fait, quand je vais sur l'adresse :

http://www.monsite.com/nimp.htm

L'erreur 404 personnalisée est prise en compte, et je suis donc renvoyé vers cette page...

Quand je vais sur l'adresse

http://www.monsite.com/nimp.php

Là, elle n'est pas prise en compte et on est renvoyé vers l'erreur de l'hébergeur.

Encore pire, non ?..

Lien vers le commentaire
Partager sur d’autres sites

Euh... là effectivement c'est troublant.

En cherchant un peu, il semble que l'hébergeur gratuit Free procède ainsi (ErrorDocument pour .html fonctionne, pour .php ne fonctionne pas. Pourquoi...sûrement pour une bonne raison, et en fait c'est gratuit, alors on demande pas "pourquoi ?" ;)). Est-ce que par hasard c'est ton hébergeur ?

Comme l'a dit ton hébergeur :

Cependant, les extensions .php ne peuvent être personnalisées par cette

méthode.

La réécriture n'aura aucun effet, à moins que tu veuilles réécrire TOUTES les URL se terminant par ".php", mais dans ce cas-là tu ne pourras pas appeler un script (par une URL) s'il a l'extension ".php". La règle donnerait ceci :

RewriteEngine On
RewriteRule \.php$ 404.php [L]

Mais cela annihile l'extension ".php" dans tes URL, c'est un choix...peut-être te convient-il. Attention dans le fichier "404.php", il FAUT envoyer l'en-tête d'une erreur 404 :

header("HTTP/1.1 404 Not Found");

Ceci avant que tout autre caractère ne soit envoyé au navigateur de ton visiteur (n'importe quel caractère, même un retour de ligne)

EDIT: J'ajoute que tu devrais redéfinir ton DirectoryIndex dans ton fichier .htaccess :

DirectoryIndex index.html index.htm

Ou tout autre page d'index... à condition qu'il ne s'agisse plus d’un fichier avec une extension en ".php", sans que tu seras redirigé vers ta page manu-militari lorsque tu essayeras d'accéder à ta page par http://www.mondomain.com/ (sans préciser le fichier) ;)

EDIT2: Évidemment, si Free ne permet pas la réécriture d'URL (ce que Dan dit, donc tu peux le croire ;)), tu es dans ce qu'on appelle vulgairement une impasse... et il ne te reste à peu près que tes yeux pour pleurer sur ta page 404.php ;)

Lien vers le commentaire
Partager sur d’autres sites

Ton hébergeur est Free ? ils ont des serveurs spécifiques pour les pages HTML et les pages PHP.

Dans l'affirmative tu ne peux rien y faire :(

Dan

Lien vers le commentaire
Partager sur d’autres sites

Non c'est 1&1, c'est d'autant plus étonnant je dirais... Parce que je pensais avoir payé pour un serveur qui fait même marcher les htaccess correctement ;)

J'avais vu que pour Free ça ne marchait pas, mais je ne comprends pas trop pour 1and1...

Lien vers le commentaire
Partager sur d’autres sites

En cherchant un peu, il semble que l'hébergeur gratuit Free procède ainsi (ErrorDocument pour .html fonctionne, pour .php ne fonctionne pas.

Non, chez free.fr, le ErrorDocument 404 marche quelle que soit la page non trouvée (je viens de tester), et je m'en sert d'ailleurs pour faire du pseudo-urlrewriting :rolleyes:.

Lien vers le commentaire
Partager sur d’autres sites

Ok... donc cela à changé depuis 2003 ;) On ne sait jamais...comme je n'ai pas pu tester ceci, j'ai bien dit "il semble" ... l'information date un peu, tant mieux si elle ne se vérifie plus.

Effectivement pour 1&1 c'est étonnant, je n'ai pas d'expérience avec eux mais si je me fie aux avis lus sur le Hub ce prestataire me sembl-e(-ais) bon... peut-être que si tu le leur demande, il se justifieront à propos de cette limitation... personnellement je suis sur plusieurs serveur mutualisés (autres prestataires) et aucun ne présente cette limitation.

Bonne chance.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...