Back to top

Autore Topic: Come e perché fare una pagina d'errore 404  (Letto 10623 volte)

Offline ZioPal

  • Abituale
  • ****
  • Post: 806
  • Sesso: Maschio
  • SWM - Servizi Web Marketing Roma
    • Mostra profilo
Come e perché fare una pagina d'errore 404
« il: 12 Set 2014, 16:34:21 »
Ciao,
ho pubblicato l'articolo sul come e perché utilizzare e personalizzare la pagina di errore 404, spero sia utile.

Ecco un breve estratto:

Capita spesso che un sito riceva visite da link che puntano a pagine non più esistenti, a volte perché queste vengono generate da cambiamenti strutturali dovuti ad operazioni come migrazioni o restyling o da qualche errore non meglio definito che da vita a link non funzionanti. Quando un visitatore arriva sul tuo sito attraverso questi link viene indirizzato ad una specifica pagina di errore, la pagina 404.

Maurizio ZioPal


Link all'articolo: http://www.joomla.it/e-ancora/articoli-community-3x/7565-come-e-perche-fare-una-pagina-d-errore-404.html
« Ultima modifica: 12 Set 2014, 16:58:45 da alexred »
Realizzazione e posizionamento siti web Roma
Realizzazione Siti Web Roma Twitter: @ZioPal Facebook: Maurizio Palermo

Offline ohmygod

  • Nuovo arrivato
  • *
  • Post: 15
    • Mostra profilo
Re:Come e perché fare una pagina d'errore 404
« Risposta #1 il: 12 Set 2014, 21:23:11 »
- copio error.php nel mio template, incollo la stringa suggerita e di tutto il codice che c'è in error.php cosa ne faccio? direi nulla se c'è un exit;

- non è meglio un "redirect di joomla"?
Codice: [Seleziona]
if (($this->error->getCode()) == '404') {
    $app = &JFactory::getApplication();
    $app->redirect(JRoute::_('index.php?option=com_content&view=article&id=1000'));
}

- error.php è in override? credo di si... non è meglio lasciare tutta la pagina di errore inserendo il pezzetto di codice dopo quello che già c'è?
Codice: [Seleziona]
if (!isset($this->error)){
$this->error = JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
$this->debug = false;
}
if (($this->error->getCode()) == '404') {
    $app = &JFactory::getApplication();
    $app->redirect(JRoute::_('index.php?option=com_content&view=article&id=1000'));
}
... se non è un 404 ...o se finisci quì per qualche motivo...

- e se invece di una pagina di errore in cui giustifichi una malefatta (come dici tu stesso nell'articolo) tu ritornassi in homepage, cambierebbe qualcosa in prospettiva seo? come vedrebbe google qs cosa se vieni dal suo bot con la ricerca? meglio? peggio? indifferente?
Codice: [Seleziona]
    $app->redirect(JRoute::_('index.php'));
Comunque sempre graditi i tuoi articoli
« Ultima modifica: 12 Set 2014, 21:30:06 da ohmygod »
Con i corsi di aggiornamento periodici consente di dare una qualità creativa, e con la partecipazione della bravura personale, fa sì, che la soddisfazione del personale sia sempre nei limiti massimi. (Pasquale 'o webby)

Offline ZioPal

  • Abituale
  • ****
  • Post: 806
  • Sesso: Maschio
  • SWM - Servizi Web Marketing Roma
    • Mostra profilo
Re:Come e perché fare una pagina d'errore 404
« Risposta #2 il: 15 Set 2014, 22:37:32 »
Ciao ohmygod,
scusa se non ho risposto prima ma ero in viaggio e non è comodo seguire il forum. :)

In realtà il codice che serve, basta e avanza, è questo:
Codice: [Seleziona]
defined('_JEXEC') or die;

if (($this->error->getCode()) == '404') {
header('Location: /index.php?option=com_content&view=article&id=61');
exit; }

Io ho fatto riferimento alla guida su joomla.org che indicava anche Alex, la guida è corretta, ma forse valeva la pena specificare qualcosa di più.

In primis il file error.php è il file di errore associato al template, quindi quello che trovi nel file dipende da chi ha fatto il template, ma ripeto è sufficente il codice qui sopra.

L'errore 404 è bene che venga rimarcato come tale, e non sia un semplice redirect, sia per te che per il visitatore. Per te lo farà il web server e ti darà la possibilità di rintracciare gli errori e correggerli, per il visitatore è bene avvertirlo che quello che cercava non c'è più o non c'è mai stato piùttosto che offrigli la home o un'altra qualsiasi pagina che non desiderava e lo lascierebbe perplesso.

Maurizio ZioPal
Realizzazione e posizionamento siti web Roma
Realizzazione Siti Web Roma Twitter: @ZioPal Facebook: Maurizio Palermo

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Come e perché fare una pagina d'errore 404
« Risposta #3 il: 16 Set 2014, 08:10:26 »
L'errore 404 è bene che venga rimarcato come tale [...]

scusate se mi ci metto anch io, ma in realtà in questo modo l'errore non c'è più! infatti viene cancellato dal redirect...
secondo me è decisamente meglio inserire il codice in error.php

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline ohmygod

  • Nuovo arrivato
  • *
  • Post: 15
    • Mostra profilo
Re:Come e perché fare una pagina d'errore 404
« Risposta #4 il: 16 Set 2014, 15:00:13 »
Oltre a quello segnalato da mmleoni, di cui non mi ero accorto, ti preciso alcune cose:

Citazione
, la guida è corretta,
mai sostenuto fosse sbagliata. Comunque le guide sono fatte da umani (e spesso solo a caccia di backlink o click) quindi possono essere ..."imperfette"?

Citazione
è sufficente il codice qui sopra
..anche quì... non ho detto non sia sufficiente allo scopo, mi sono permesso di dire che fore era meglio..., così come era forse meglio lasciare il resto del codice (che non era specificato)

Citazione
per il visitatore è bene avvertirlo che quello che cercava non c'è più
solamente perchè monitorando gli accessi al sito continuo a verificare che il 90% dei 404 è causato da "collezionatori di link" che se ne fottono del 404 causandomi però report continui di google. Probabilmente sono scelte da fare letteralmente "on site" e non può essere stabilito cosa è meglio o cosa è peggio, so solamente che da un po' di giorni google mi sorride con tante spuntine verdi... e io da ignorante sono felice.
Con i corsi di aggiornamento periodici consente di dare una qualità creativa, e con la partecipazione della bravura personale, fa sì, che la soddisfazione del personale sia sempre nei limiti massimi. (Pasquale 'o webby)

Offline etnatracker

  • Esploratore
  • **
  • Post: 117
  • Chi ha paura, muore ogni giorno
    • Mostra profilo
Re:Come e perché fare una pagina d'errore 404
« Risposta #5 il: 04 Giu 2015, 16:05:26 »
L'ho fatto sul mio sito e ho notato che non serve creare la voce di menù, basta fare l'articolo. A meno che non ci sia qualche motivo che mi sfugge per il quale occorre in effetti la voce di menù.

Ciao

Bruno
"Tutto ciò che la natura ha di grande,tutto ciò che ha di piacevole,tutto ciò che ha di terribile,
si può paragonare all'Etna. E l'Etna non si può paragonare a nulla"
http://www.etnatracking.com

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Come e perché fare una pagina d'errore 404
« Risposta #6 il: 04 Giu 2015, 16:23:19 »
la voce di menù serve perché joomla sia consapevole della pagina, ovvero possa attribuirle esattamente moduli e templates senza considerarla una home page.

resto però della mia idea, ovvero che la guida di joomla.org sia a momentary lapse of reason, per dirla con i i pink floyd, oppure cannata alla grande, come invece dico io. esaminate le risposte http della pagina prima di replicare...  ;)

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline etnatracker

  • Esploratore
  • **
  • Post: 117
  • Chi ha paura, muore ogni giorno
    • Mostra profilo
Re:Come e perché fare una pagina d'errore 404
« Risposta #7 il: 04 Giu 2015, 16:41:14 »
ok, nel mio caso si vedono i moduli assegnati a tutte le pagine quindi è perfetto.

Detto questo: ho visto le risposte http con httpfox, l'errore 404 non c'è più e mi dà un 302 e un 303. Quindi non so più se ci sono i link rotti, ma per me non è un problema perchè queste analisi me le faccio con XENU che è molto più affidabile, mi dice tutte le pagine che linkano a quella di errore e posso eliminare tutti i link e anche delle cose molto più sottili che in siti multilingua come il mio non vedrei

Ciao
"Tutto ciò che la natura ha di grande,tutto ciò che ha di piacevole,tutto ciò che ha di terribile,
si può paragonare all'Etna. E l'Etna non si può paragonare a nulla"
http://www.etnatracking.com

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Come e perché fare una pagina d'errore 404
« Risposta #8 il: 04 Giu 2015, 17:15:09 »
[...]
l'errore 404 non c'è più e mi dà un 302 e un 303.
[...]
e proprio qui sta il problema: tutte redirezioni ad una medesima pagina, ergo contenuti duplicati e/o inesistenti... penalizzazione?
non so se del sito o della pagina, ma, in vero, il problema non mi tange  ;D io uso un altro metodo.

meditate gente  ;)

ciao,
marco

ps: la linea a fatto un poco di casini e io pure: ignora la precedente segnalazione  :(

« Ultima modifica: 04 Giu 2015, 17:19:05 da mmleoni »
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline etnatracker

  • Esploratore
  • **
  • Post: 117
  • Chi ha paura, muore ogni giorno
    • Mostra profilo
Re:Come e perché fare una pagina d'errore 404
« Risposta #9 il: 04 Giu 2015, 17:26:15 »
e proprio qui sta il problema: tutte redirezioni ad una medesima pagina, ergo contenuti duplicati e/o inesistenti... penalizzazione?
non so se del sito o della pagina, ma, in vero, il problema non mi tange
Alura... mi permetto di dissentire nel merito e nel metodo...
1) se uno sa cosa fare, non ci sono contenuti duplicati nè inesistenti, la pagina 404 si può mettere con il metatag no-index (basta usare tagmeta) per cui non ci dovrebbero essere duplicazioni in quanto la pagina non viene indicizzata come non veniva indicizzata la vecchia 404
2) se hai una soluzione migliore, potresti condividerla con noi, il forum dovrebbe servire a questo. Io ho visto che che non serve fare la voce di menù e ho ritenuto utile condividerlo. Mi sono accorto che non c'è più il 404 quindi non saprei come fixare gli errori e ho indicato che si può usare XENU. Adesso mi sono anche accorto che l'exit brutale dall'header genera degli errori in php

Solleviamo problemi e se possibile diamo soluzioni... almeno, io faccio così

Cordialità
"Tutto ciò che la natura ha di grande,tutto ciò che ha di piacevole,tutto ciò che ha di terribile,
si può paragonare all'Etna. E l'Etna non si può paragonare a nulla"
http://www.etnatracking.com

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Come e perché fare una pagina d'errore 404
« Risposta #10 il: 04 Giu 2015, 17:39:28 »
ci sono tante soluzioni in rete; a ciascuno sta valutare quella che ritiene più opportuna, e questo senza pensare che la propria sia la migliore: per indole io posso ritenere che la mia risposta sia giusta, non che sia la verità...

ciao
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline mikyjoo

  • Esploratore
  • **
  • Post: 78
    • Mostra profilo
Re:Come e perché fare una pagina d'errore 404
« Risposta #11 il: 08 Lug 2017, 09:59:45 »
Ciao ZioPal,

Ho seguito le istruzioni dell'articolo e come risultato ho ottenuto che quando cerco di visualizzare la pagina che comunica l'errore 404 ricevo il seguente messaggio:

"La pagina ha generato un loop di reindirizzamento"

oppure:
"La pagina ha reindirizzato troppe volte.
ERR_TOO_MANY_REDIRECTS"

che penso sia la stessa cosa. Come posso risolvere? E' vero, come dice mmleoni, che " in questo modo l'errore non c'è più! infatti viene cancellato dal redirect"? C'è una soluzione? Grazie!

Offline ZioPal

  • Abituale
  • ****
  • Post: 806
  • Sesso: Maschio
  • SWM - Servizi Web Marketing Roma
    • Mostra profilo
Re:Come e perché fare una pagina d'errore 404
« Risposta #12 il: 10 Lug 2017, 15:49:34 »
Ciao Mikyjoo,
l'articolo fa riferimento ad una versione più vecchia di Joomla, Non so se c'è qualche conflitto con la versione 3.x perché non uso più quel sistema.

Maurizio ZioPal
Realizzazione e posizionamento siti web Roma
Realizzazione Siti Web Roma Twitter: @ZioPal Facebook: Maurizio Palermo

Offline mikyjoo

  • Esploratore
  • **
  • Post: 78
    • Mostra profilo
Re:Come e perché fare una pagina d'errore 404
« Risposta #13 il: 10 Lug 2017, 20:07:56 »
Ciao! Con le versioni di Joomla 3.x è ancora necessario oppure no creare pagine 404 simili a quelle proposte dall'articolo in questione?

Offline mikyjoo

  • Esploratore
  • **
  • Post: 78
    • Mostra profilo
Re:Come e perché fare una pagina d'errore 404
« Risposta #14 il: 10 Lug 2017, 20:14:49 »
Tuttavia a metà articolo c'è scritto che vale per joomla 1.6, 1.7, 2.5 o 3.x:

Modifica il file error.php Ora dovrai modificare il file error.php che hai copiato affinché esegua un redirect alla pagina di errore che hai precedentemente creato. Fai come segue, aggiungendo il codice di seguito immediatamente sotto la linea 'restricted access':   defined('_JEXEC') or die;

Questo codice è utilizzabile per le versioni di joomla 1.6, 1.7, 2.5 o 3.x:

 if (($this->error->getCode()) == '404') {
header('Location: /index.php?option=com_content&view=article&id=75');
exit;
}

Offline danielecr

  • Abituale
  • ****
  • Post: 1357
    • Mostra profilo
Re:Come e perché fare una pagina d'errore 404
« Risposta #15 il: 10 Lug 2017, 21:00:44 »
Il mio consiglio onde non impattare il SEO è di modificare direttamente error.php e di non inserire redirect del tipo header-location. La pagina di errore deve dare codice 404 e basta, senza effettuare redirezionamenti. È possibile integrare contenuti moduli e menù direttamente in error.php

Offline miao

  • Appassionato
  • ***
  • Post: 577
    • Mostra profilo
Re:Come e perché fare una pagina d'errore 404
« Risposta #16 il: 19 Dic 2017, 19:28:43 »
quindi anche facendo cosi è sbagliato?


if (($this->error->getCode()) == '404') {
header('Location: /404.shtml);
exit;}

Dove 404.shtml è un file html creato a doc
« Ultima modifica: 19 Dic 2017, 19:34:09 da miao »

 



Web Design Bolzano Kreatif