• User Attivo

    Reindirizzamento dei 404 con .htaccess

    Ciao, ragazzi.

    Mi chiedo se può essere penalizzante inserire un redirect per le pagine che restituiscono un errore 404 (Page not Found) direttamente sul file .htaccess, mediante un'istruzione del tipo:

    
    ErrorDocument 404 /percorso/pagina_con_redirect_301.php
    
    

    Giorgio in persona ha proposto un test, che sarei ben felice di seguire in prima persona e di realizzarne il relativo materiale.
    Avrei però bisogno del vostro aiuto per decidere come svilupparlo, vista la particolarità della cosa.

    Che ne dite?


  • User Attivo

    Dunque, un codice di errore non appena restituito al client che ne fa richiesta non può essere alterato, ne consegue che tu devi agire prima ancora di ritornare indietro quel 404 a chiunque te lo richieda.

    Nello specifico non conosco il php e come funziona il file htaccess, ma credo che per questo genere di test tu debba far girare una sorta di script per ogni richiesta che verifica l'esistenza del file richiesto internamente con qualche comando tipo fileExist (se esiste) e nel caso ti ritorna un false sparare il link alla pagina con il 301 e ritornare il giusto codice.


  • User Attivo

    Non vedo ragioni per le quali dovrebbe essere penalizzante: se una risorsa non esiste e tu lo dichiari correttamente attraverso un 404, quello che fai DOPO è affare soltanto tuo.

    Pensa a tutti quelli che inseriscono un meta refresh nella 404...

    Tieni poi conto di una cosa: se il redirect lo imposti come 301 e non come 302, alle successive richieste di /pagina-inesistente.htm il browser richiederà direttamente l'URL di destinazione del redirect, e tu nei log non vedrai il 404.

    Redirect OK, ma perchè 301?

    Edit: ho scritto un'idiozia, [url=http://www.giorgiotave.it/forum/laboratorio-seo/62626-reindirizzamento-dei-404-con-htaccess.html#post429791]vedi qui


  • User Attivo

    301 vuol dire risora mossa definitivamente, ergo hai deciso di fare restyling ai path del tuo sito, quindi comunichi a chi ti crawla che quel file non esiste più ed è stato spostato nella nuova locazione.
    In amito spider questo vuol dire dal secondo tentativo in poi che lo spider acquisisce questa tua decisione e quindi aggiornerà (presumibilmente) i suoi indici con il nuovo percorso.


  • User Attivo

    Uhm aspetta, mi è venuta in mente una cosa:

    con un errordocument scritto come sopra tu di fatto stai MODIFICANDO le intestazioni, quindi la tua pagina 404 non risponde più 404 ma con un redirect (e non, come ho affermato prima, con un 404+successivo redirect - scusate, è la febbre...)

    Ci sono situazioni in cui ciò può essere effettivamente desiderabile (ad esempio vuoi recuperare TUTTI i backlink di un determinato dominio, senza conoscerli e senza avere lo storico dei log), ma se fossi uno spider, m'insospettirei.

    Per certo ti posso dire che non riuscirai a verificare il sito con Google Webmastertools, a meno di non inserire un file custom per la gestione del 404 che si aspetta G.

    Penalizzazioni sul posizionamento? Uhm... non ho dati certi, ma sinceramente non mi stupirebbero.


  • User Attivo

    @petro said:

    Uhm aspetta, mi è venuta in mente una cosa:

    con un errordocument scritto come sopra tu di fatto stai MODIFICANDO le intestazioni, quindi la tua pagina 404 non risponde più 404 ma con un redirect (e non, come ho affermato prima, con un 404+successivo redirect - scusate, è la febbre...)

    Ci sono situazioni in cui ciò può essere effettivamente desiderabile (ad esempio vuoi recuperare TUTTI i backlink di un determinato dominio, senza conoscerli e senza avere lo storico dei log), ma se fossi uno spider, m'insospettirei.

    Per certo ti posso dire che non riuscirai a verificare il sito con Google Webmastertools, a meno di non inserire un file custom per la gestione del 404 che si aspetta G.

    Penalizzazioni sul posizionamento? Uhm... non ho dati certi, ma sinceramente non mi stupirebbero.

    Perdonami ma non ho capito niente di quello che hai scritto.


  • User Attivo

    In breve, la direttiva [url=http://httpd.apache.org/docs/1.3/mod/core.html#errordocument]ErrorDocument non fa altro che sostituire, in presenza dell'errore indicato, il messaggio di errore di default di Apache (come [url=http://www.giorgiotave.it/404]questo) con quello indicato, o con i contenuti dell'URL-Path indicato (tramite include se è sullo stesso server, e se l'URL è relativo).

    Fin qui il discorso tecnico. Ora, se in presenza di quello che dovrebbe essere un 404 mostro una pagina che esegue un redirect, lo status-code non sarà più 404, ma 30x, ovvero un redirect.

    Questo, come suggerisce anche la documentazione di Apache Errordocument, "can confuse web robots and other clients which try to determine if a URL is valid using the status code". Cosa che, a mio parere, in determinate situazioni può risultare penalizzante... ma quest'ultima affermazione prendetela col beneficio del dubbio, poichè -ripeto- non ho eseguito test specifici.

    Restituire 301 ad ogni richiesta di un documento non trovato può essere utile, ad esempio, quando si acquisisce un dominio altrui con traffico, e non si hanno i log precedenti nè si conoscono i backlink già presenti... impostare 301 invece di 404 può servire a recuperare i BL indipendentemente dalla risorsa a cui puntano all'interno del dominio. Ma è una cosa che farei solo in casi particolari.


  • User Attivo

    Ma infatti il 301 andrebbe restituito solo per le pagine che effettivamente sposti, non per tutte.
    E' logico che vi sia una pagina che restituisca un 404 ben configurata, e a mio avviso che non faccia redirect di nessun tipo.

    Al massimo, se proprio vuoi, puoi personalizzare detta pagina riproponendo quelli che sono i link principali del sito web, tra i quali male non sta un link alla mappa del sito.


  • User Attivo

    Ciao, ragazzi.
    il mio intento è infatti quello di dimostrare se sia penalizzante o meno reindirizzare un 404 verso un'altra pagina.

    Chiedo però consiglio su come impostare questo test.

    Creo una riga ErrorDocument sull'htaccess, poi la mia pagina di redirect.

    A questo punto, però come posso fare per valutare i risultati dei test?


  • User Attivo

    Io passo per la parte di configurazione / php.

    Però di logica se restituisci un 404 una pagina statica con dentro un redirect http-equiv a 0, quindi il 301 dei poveri, secondo me prendi una penalizzazione.