2010-06-09 5 views
5

Merci à ce forum, j'ai appris la fonction d'en-tête PHP n'envoie pas réellement l'en-tête au serveur Apache, mais seulement au client.PHP Force Apache erreur

Ce que je veux faire est de générer une erreur 500, et qu'Apache affiche sa page correspondante. Y a-t-il un moyen de le forcer?

Merci d'avance! (et allez les bleus!)

+0

Hmm, don Je ne sais pas si c'est possible. Qu'est-ce que vous voulez faire pour cela, et à quel moment voulez-vous générer le 500? –

+1

Et qui sont ces gens bleus dont vous parlez? Souffrent-ils d'un manque d'oxygène? ;) –

+0

effectivement, nous avons fait quelques pages d'erreur personnalisées Apache, et je nettoie la gestion des erreurs PHP, afin d'avoir une page d'erreur unique (ce qui serait l'Apache) ... Je vais essayer d'écrire une mauvaise directive .htaccess (ou comment apprendre faire quelque chose de mal intentionnellement ...) et sur le bleus, je suppose que vous en entendrez plus à ce sujet le 11 Juillet;) – Rolf

Répondre

3

Faites une redirection vers une URL qui provoque une 500.

Par exemple, une URL avec une directive .htaccess invalide.

+0

merci, je vais essayer ça à présent ! – Rolf

+1

J'ai essayé de mettre dans le .htaccess au fichier RewriteRule^erreur \ .php $ /force_error_500.php [NC, R = 500] (force_error_500.php n'existe pas) header ('Location: erreur. php '); causes seulement un 404 ... Je suppose que j'ai manqué un point :( – Rolf

+0

Oui ... créer un fichier .htaccess INVALIDE.Votre était un valide :) – zaf

4

Il y a une façon d'envoyer une erreur 500 au navigateur, mais vous aurez à fournir la page vous:

<?php 
header('HTTP/1.1 500 Internal Server Error'); 
echo <<<ERRORTEXT 
The server encountered an unexpected condition which prevented it 
from fulfilling the request. 
ERRORTEXT; 
// also notify server operator, maybe? 
exit; 
?> 
+0

merci pour votre réponse, mais j'ai besoin d'utiliser les pages d'erreur Apache ... – Rolf

0

Il suffit de faire un script cgi cassé:

// Don't include stdio 
int main() { 
    printf("This won't work.\n"); 
    return 0; 
}