• User

    Redirect 301 sulle pagine scomparse per cambiamento di n. news mostrate su categorie

    Sono qui con un nuovo dilemma dovuto al mio cambio di tema Wordpress. Ho dovuto aumentare nelle categorie il numero di notizie mostrate in una pagina, e questo ha causato una diminuzione di pagine.

    Esempio:

    Se prima avevo 8 post in pagina, nella categoria X avevo l url così -> sito/page/34

    Se ora col tema nuovo ho invece impostato 16 post in pagina, la categoria X all'url sito/page/34 mi darà 404 perchè non ho più lo stesso numero di pagine, ma inferiori visto che finiscono prima per il cambiamento di numero di post.

    Questo mi capita con tutte le categorie create.

    Mi serve una regola generica che dica "reindirizza alla page/1 tutte le page/n che non trovi".

    Mi potete aiutare? qualche idea?


  • User Attivo

    Provas vedere se il plugin simple redirect fa sl caso tuo


  • User

    @ghughi said:

    Provas vedere se il plugin simple redirect fa sl caso tuo

    ciao ghughi grazie per la risposta intanto. al di la del fatto che vorrei evitare di installare plugin, ho anche altre regole di rewrite scritte da htaccess quindi preferirei scrivere tutto a mano. ho visto comunque che quel plugin ti permette di modificare le pagine una ad una e non avrei la possibilità di fare quello che chiedevo.


  • User

    qualche idea ragazzi? web master tools mi sta notificando una marea di errori per questa cosa 😞

    molto brevemente mi servirebbe una regola che dice:

    **fai redirect se /page/xx/ è 404
    **
    non posso farlo per tutte le /page/ perchè molte sono funzionanti, quindi ad esempio: posso avere /page/32 funzionante mentre /page/56 no.


  • User

    Cercando e ricercando ho trovato una possibile soluzione, ma che utilizza una funzione di wordpress denominata wp_redirect(), quindi non direttamente da htaccess.

    ho creato una funzione da mettere in functions.php , sembra funzionare ma vorrei capire se può essere in qualche modo dannosa secondo voi e se può creare qualche problema con google. l'ho commentata così è comprensibile

    [PHP]//funzione di redirect su pagine 404 con scritta /page/ all interno per paginazione con piu articoli rispetto al vecchio sito

    function redirect_paginated_404() {
    if (is_404()) {

        $url = $_SERVER['REQUEST_URI']; //prendo l url
        $search = '/page/'; //scrivo la parola da cercare nell url
    
        if ( strpos( $url, $search ) !== false ) { //se nell url c è la parola /page/
            
            //prendo l url, cerco la parola /page/ e cancello tutto ciò che c è dopo, cioè il numero di paginazione sbagliato
            $short = substr($url, 0, strpos( $url, $search)); 
            //echo home_url( $short . '/page/1' );
              wp_redirect( $short, '301' ); // eseguo un redirect 301 sulla prima pagina della categoria
             exit;
        }
    

    }
    }

    add_action('template_redirect', 'redirect_paginated_404');
    [/PHP]

    che dite, può fare del male o ci può stare? tipo rindirizzare tutte le pagine sbagliate alla prima pagina della categoria, è deleterio o va bene? (non ho grosse alternative però..)


  • User

    Scusate se continuo a postare, ma la cosa si evolve e vorrei aggiornarvi. Non sicuro della cosa, ho creato un post anche su stackexchange e un utente mi ha messo qualche dubbio... praticamente dice che secondo lui non è necessario in questo caso fare dei redirect e che l errore 404 è il codice giusto da segnalare, anzi sarebbe strano il contrario.

    inoltre mi ha detto una cosa a cui effettivamente non avevo pensato: ad esempio se da "nomecategoria/page/100" faccio un redirect 301 alla prima pagina "nomecategoria" , quando arriverò nuovamente a 100 pagine di post e avrò nuovamente bisogno dell'url "nomecategoria/page/100", che succede? insomma, temo che ci sarebbe qualche casino...

    che ne pensate?

    vi cito quel che mi ha scritto:

    That is totally normal. I you had a existent URL (i.e. /category/page/150/) that doesn't exist anymore, 404 status code is the correct code. Don't worry about that. The problem would be that a non-existant URL returns a status code different than 404. I really don't see any advantage of making the redirection you plan to do; note that you are talking about pagination URLs, not URLs of "real" content. If you change the URL of post, the redirection is a must, but for pagination URLs I think is worthless.

    You need to understand that 404 is the correct status code in some situations; having 404 errors in Webmaster tools can help you to identify problems in your site. For example, if valid URLs return 404 code, it is a problem. But if non-valid URLs return 404, is simply good, just ignore them. What if I post a wrong URL here to your site? You will see a 404 error in WMT, and it is just fine. Redirections should be done only when the content has been moved from one location to another.

    In your case I would just ignore the 404 errors from old pagination URLs; note that pagiantion URLs should be considered as one single list because the only purpose if to provide access to the item list. **Additionally, while the number of items grow, you will need again the old pagination URLs be accesible and not redirected. **

    aspetto con ansia e interesse il vostro punto di vista, per decidere sulla cosa!


  • User

    Supponendo che hai già, in questo momento, raggiunto le 100 pagine il controllo su is_404() restituirà false e quindi non ci sarà nessuna operazione di cui dovrai preoccuparti poiché il codice all'interno dell'if non verrà eseguito.

    A parere mio il metodo che utilizzi per gestire la cosa è radicalmente sbagliato. Il codice di stato http 301 indica che la risorsa a cui si fa riferimento è stata definitivamente spostata è punta ad un altro indirizzo. Nel tuo caso il modo migliore per gestire la situazione è lasciare tutto così com'è. Il codice http 404 è quello giusto per indicare che una risorsa è attualmente non disponibile ma potrebbe esserlo in futuro.

    Posso chiederti quali vantaggi ritieni ci siano nell'indicizzare i contenuti della paginazione? Te lo chiedo perché proprio di recente su un sito wp ho deindicizzato tramite il meta "noindex" più di 600 pagine di paginazione e ora mi è sorto questo dubbio.

    Lo scenario tipico che si presenta per l'utente in un risultato di ricerca che mostra una pagina di paginazione (scusa il gioco di parole) è che una volta arrivato su tale pagina dovrà scorrersi i 16-20 risultati per individuare il testo cercato nel frattempo se va di fretta o magari è un utente distratto torna indietro o chiude il risultato pensando di essere arrivato su un sito non pertinente con il suo intento di ricerca.

    Sono curioso di sapere se mi sbaglio o meno al riguardo e cosa ne pensano i più esperti.