• User Attivo

    Rewrite URL multilingua

    Salve,
    ho rifatto un sito in Wordpress multilingua mantenendo lo stesso dominio ma cambiando, tra le varie cose, la modalità di visualizzazione dei permalink.
    Quindi, ho provato a fare un redirect 301 nel file htaccess di questo tipo:

    redirect 301 /pagina.php**?lang=it** https : // www . ....sito ...**/it/**paginanuova

    Però non funziona, dà errore 404.
    Dove sbaglio?
    Grazie.
    H.


  • User Attivo

    Ciao, l'errore sta nell'utilizzo di Redirect. Piuttosto dovresti sfruttare il mod_rewrite con le seguenti direttive:

    • RewriteCond che ti consente di stabilire una condizione
    • RewriteRule che esegue la riscrittura vera e propria

    Per quanto riguarda le condizioni potresti fare un controllo sulla "REQUEST_URI" e la "QUERY_STRING", se la prima matcha pagina.php allora prosegui a verificare se nella query string c'è lang=it, in caso positivo vai di RewriteRule verso la nuova URL.

    Assicurati di aver inserito in testa al file .htaccess la direttiva RewriteEngine on che attiva il motore di riscrittura, altrimenti non funge.

    Link alla documentazione di mod_rewrite

    httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewritecond

    httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewriterule

    httpd.apache.org/docs/2.4/mod/mod_rewrite.html


  • User Attivo

    Ciao Flavio,

    grazie mille per la risposta molto precisa ed esauriente.
    Purtroppo le mie conoscenze tecniche non vanno oltre il semplice redir 301...
    Ho provato a leggere la documentazione che hai giustamente indicato, ma non ci salto fuori lo stesso.
    Se non chiedo troppo, potresti indicarmi come risulterebbe l'esempio che ho fatto, applicando il mod_rewrite che hai citato?

    Un'ultima cosa: ho notato che, sempre nel mio esempio (e sempre ostinandomi con il redir 301...), se dall'url di partenza tolgo la parte ?lang=it, il redirect funziona, anche se l'url di arrivo viene fuori così:
    https : // www . ....sito .../it/paginanuova/?lang=it

    E' un obbrobrio?
    Alla fine, a me andrebbe anche bene così, perché il mio obiettivo è solo quello di risolvere i vari errori 404 segnalati da search console...

    H.