Autore Topic: [RISOLTO] Pagina personalizzata di errore 404 completamente bianca  (Letto 235 volte)

Offline sgiobbio

  • Appassionato
  • ***
  • Post: 291
    • Mostra profilo
Ho sempre avuto una pagina di errore personalizzata sui miei siti.
Recentemente ho seguito questo thread per comunicare contemporaneamente a google lo stato 404:
https://www.itoctopus.com/the-right-way-to-handle-404s-in-joomla

In pratica si tratta di sostituire nella pagina error.php le seguenti righe di codice:

Codice: [Seleziona]
if (($this->error->getCode()) == '404') {
    header('Location: https://www.convivium.club/reportage/errore-404');
    exit;
}

con queste righe:

Codice: [Seleziona]
if (($this->error->getCode()) == '404') {
    header('HTTP/1.0 404 Not Found');
    $errorPageContent = file_get_contents('https://www.convivium.club/reportage/errore-404');
    echo $errorPageContent;
    exit;
}

Fatto questo, se digito volutamente un indirizzo che non esiste, compare di ritorno una pagina completamente bianca.
L'errore è il seguente:

 Warning: file_get_contents(https://www.convivium.club/reportage/index.php?option=com_content&view=article&id=387): Failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/conviviu/public_html/reportage/templates/cassiopeia_child/error.php on line 14

Qualcuno mi può aiutare?
« Ultima modifica: 26 Gen 2023, 19:37:51 da sgiobbio »

Offline renzo973

  • Appassionato
  • ***
  • Post: 398
  • Sesso: Maschio
  • Cogito ergo sum !!!
    • Mostra profilo
Re:Pagina personalizzata di errore 404 completamente bianca
« Risposta #1 il: 25 Gen 2023, 15:54:17 »
se ti può essere di aiuto, io ho digitato https://convivium.club/pippo e mi si é aperta la home del tuo sito perfettamente. Direi che non è solo la 404 che non ti funziona
Dicono che dio ci ha fatti tutti uguali, ma poi, appena fuori dall'utero, ha iniziato coi favoritismi

Offline sgiobbio

  • Appassionato
  • ***
  • Post: 291
    • Mostra profilo
Re:Pagina personalizzata di errore 404 completamente bianca
« Risposta #2 il: 25 Gen 2023, 18:19:31 »
Grazie Renzo... e no, non mi è d'aiuto.

C'è di mezzo forse anche la cache, fatto sta che svuotata la cache di Cloudflare e svuotata la cache di navigazione del browser, se digiti https://www.convivium.club/reportage/pippo o qualsiasi altro indirizzo inventato la pagina che ti ritorna è completamente bianca con Firefox e " Nessuna pagina web trovata per l'indirizzo web" con Chrome.

HTTP/1.1 403 Forbidden al rigo 14 corrisponde a questo rigo di codice php:

Citazione
$errorPageContent = file_get_contents('https://www.convivium.club/reportage/errore-404');


Che ci sia qualche errore nel codice?

Vorrei insistere sul fulcro del problema:
Se utilizzo il codice originario, come ho sempre fatto, la pagina di errore funziona benissimo.
Se utilizzo il secondo codice che ho postato, la pagina di errore diventa completamente bianca.
Mi piacerebbe fornire a google lo stato "HTTP/1.0 404 Not Found" che è presente nel secondo codice e non nel primo, tutto qui.
« Ultima modifica: 25 Gen 2023, 19:22:31 da sgiobbio »

Offline sgiobbio

  • Appassionato
  • ***
  • Post: 291
    • Mostra profilo
Re:Pagina personalizzata di errore 404 completamente bianca
« Risposta #3 il: 26 Gen 2023, 19:37:23 »
Ho risolto, e posto la soluzione se mai potesse essere utile a qualcuno, anche se si tratta di un problema davvero raro e complicato. O meglio, sono io che mi sono complicato la vita da solo.
Procediamo con ordine.
Tempo fa il mio Hosting mi segnalò un utilizzo eccessivo degli script PHP.
Riuscii ad appurare che il problema derivava dall'accesso di alcuni robots indesiderati senza nome, "Empty User-Agent", che bloccai con un Firewall Rule in Cloudflare.
E' stato proprio lì che ho anche bloccato (senza saperlo) le mie pagine di errore, dal momento che "file_get_contents" non è permesso da parte di bot non identificati. In error_log ho trovato un sacco di "Failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden"
A questo punto, per risolvere, ho solo aggiunto la seguente stringa al mio codice in error.php:

Codice: [Seleziona]
ini_set("user_agent","PincoPallino Robot - see http://www.pincopallino.net");
Ora la pagina di errore funziona perfettamente, ma soprattutto invia a google un 404 invece che un 302 redirect!


Un PS per Renzo: il sito redirige sempre su www.convivium.club/reportage. Se tu digiti convivium.club/pippo finirai sempre su reportage. Per vedere la pagina di errore devi partire da /reportage
« Ultima modifica: 26 Gen 2023, 19:52:43 da sgiobbio »

 

Host

Torna su