2010-06-09 10 views
5

Grazie a questo forum, ho appreso che la funzione di intestazione PHP non invia effettivamente l'intestazione al server Apache ma solo al client.Errore PHP Apache Force

Quello che voglio fare è generare un errore 500, e lasciare che Apache visualizzi la sua pagina corrispondente. C'è un modo per forzarlo?

Grazie in anticipo! (e allez les bleus!)

+0

Hmm, don Non so se questo è possibile. Per cosa vuoi farlo e a che punto vuoi generare il 500? –

+1

E chi sono quelle persone blu a cui ti riferisci? Stanno soffrendo di mancanza di ossigeno? ;) –

+0

in realtà, abbiamo creato alcune pagine di errore personalizzate di Apache e sto pulendo la gestione degli errori di PHP, per avere una pagina di errore univoca (che sarebbe quella di Apache) ... Proverò a scrivere una cattiva direttiva .htaccess (o come imparare fare qualcosa di sbagliato di proposito ...) e circa il bleus, credo che ne sentirai di più l'11 luglio;) – Rolf

risposta

3

fare un redirect a un URL che provoca una 500.

Ad esempio, un URL con una direttiva .htaccess non valido.

+0

grazie, ci proverò giusto adesso ! – Rolf

+1

ho cercato di mettere in .htaccess il file RewriteRule^errore \ .php $ /force_error_500.php [NC, R = 500] (force_error_500.php non esiste) intestazione ('Località errore. php '); causa solo un 404 ... Immagino di aver perso un punto :( – Rolf

+0

Sì ... crea un file .htaccess NON VALIDO. Il tuo era valido :) – zaf

4

c'è un modo di invio di un errore 500 al browser, ma si dovrà fornire la pagina da soli:

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

grazie per la tua risposta, ma ho bisogno di usare le pagine di errore di Apache ... – Rolf

0

Basta fare uno script cgi rotta:

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