• Moderatore

    Se parli di redirect 301 e non vuoi eliminare l'id articolo puoi provare così:

    
    RedirectMatch 301 /nomecategoria|nometag1|nometag2/(.*) http :// www . tuodominio . com /$1
    
    

    Questa regola va bene se prima di *nomecategoria *c'è solo il dominio, cioè va bene ad esempio per:
    http :// www . tuodominio . com / nomecategoria/pippo.html
    ma non va bene per:
    http :// www . tuodominio . com / qualcosa-prima / nomecategoria/pippo.html

    nomecategoria|nometag1|nometag2 -> sono le opzioni, significa che nell'url vecchio può starci una di queste tre cose (le opzioni le separi con il simbolo | ).

    Se vuoi tenere "category" puoi fare così:

    
    RedirectMatch 301 /category/nomecategoria|nometag1|nometag2/(.*) http :// www . tuodominio . com /category/$1
    
    

    Se vuoi eliminare la "category":

    
    RedirectMatch 301 /category/nomecategoria|nometag1|nometag2/(.*) http :// www . tuodominio . com /$1
    
    

    Ci potrebbero essere esigenze diverse, un po' più complicate. Se è così prova a postare un elenco di 5-10 url da reindirizzare, così gli utenti del forum hanno più info per aiutarti. :wink3:

    Francesco


  • User Newbie

    Buongiorno a tutti,
    sono nuovo di questo utilissimo forum e spero di postare nella sezione giusta....😊

    Mi accodo a questa discussione perché ho anch'io un problemino con la query string view=featured
    Premetto che ho un sito Joomla 2.5.25

    Ho seguito il preziosissimo suggerimento di FDA inserendo nel mio file .htacces la regola suggerita da FDA

    Ho aggiunto però la lettera d a view=featured altrimenti non mi funzionava.

    Risultato:
    le pagine con il percorso miosito.com /component/content e miosito.com /component/content/?view=featured vengono correttamente reindirizzate sulla home... e questo per me è già un bel risultato, fin qui tutto ok.

    Purtroppo però Google mi indicizza ancora la pagina miosito.com/?view=featured

    Non capisco il perché e soprattutto mi chiedo se proprio non ci sia modo di redirezionare anche questa...

    PS
    già provato con redirect nativo di Joomla e con ReDJ ma non funziona

    Ringrazio in anticipo e mi scuso se mi sono dilungato :gthi:


  • Moderatore

    Ciao fafy,
    la d mancante è un refuso, grazie per averlo evidenziato. 😉

    Per il tuo problema, aggiungi al tuo .htaccess:

    
    RewriteCond %{REQUEST_URI} ^/$
    RewriteCond %{QUERY_STRING} ^(view=featured)$ 
    RewriteRule ^(.*)$ http://miosito.com? [R=301,L]
    
    

    Controlla se ci sono problemi con lo slash finale, ma dovrebbe andare tutto bene.
    Considera che nell'htaccess conta anche la sequenza delle istruzioni, quindi se un'istruzione non funziona prova a inserirla prima di un blocco di istruzioni già presente.

    Aggiornaci per sapere se è andata bene. 🙂

    Francesco


  • User Newbie

    Ciao Francesco,
    grazie mille per la dritta, ho fatto come hai detto e funziona perfettamente! 🙂

    Scusa se ne approfitto, ma è un mese che sto letteralmente combattendo contro pagine duplicate e sitelink "a random" :arrabbiato:

    Ho notato appunto che nei site link Google si è messo, da qualche giorno, ad indicizzare una pagina con questa stringa:

    miosto.com/index.php/component/content/?view=featured

    che cosa mi suggeriresti di fare? Aggiungo una ulteriore regola all' .htacces?
    Una cosa del tipo:

    RewriteCond %{REQUEST_URI} ^/index.php/component/content/$
    RewriteCond %{QUERY_STRING} ^(view=feature)?$
    RewriteRule ^(.*)$ (acca ti ti pi://)miosito.com? [R=301,L]

    Mi sembra strano che nonostante abbia abilitato la riscrittura degli url, ancora vengano trovate pagine del tipo:

    miosto.com**/index.php/*** eccetera*

    Che ne pensi?

    Grazie ancora.


  • Moderatore

    Ciao fafy.
    Se Google ha scelto quell'url come sitelink c'è un motivo, probabilmente l'ha scelto seguendo un link, cosa che suggerisce due scenari:

    • Google ha individuato il link in precedenza, quando non era impostata la riscrittura friendly delle url dal pannello di Joomla!
    • Google ha seguito un link tuttora presente

    Ti consiglio di cercare il link nelle pagine (soprattutto in home page) guardando il sorgente per capire se ancora c'è quel link: se lo trovi puoi modificarlo in friendly url.
    Non aggiungerei una regola all'htaccess e non credo che serva un redirect 301, al più dovrebbe comparire un rel canonical verso la url canonica (che è appunto quella friendly).


  • User Newbie

    Ciao Francesco,
    ti ringrazio... ho controllato nel sorgente della home e il link con index.php non è presente; Probabilmente, come dici tu, è un link scovato da Google prima che venisse attivata la ri-scrittura degli url (infatti ho, da circa due mesi, rinominato htaccess.txt in .htacces)...
    Spero quindi che il problema si risolva da solo col tempo o che passando a Joomla 3 si riesca con il rel canonical ad ovviare a tutti questi problemi di duplicazione.
    Vi terrò aggiornati, intanto grazie ancora!


  • User Newbie

    ciao a tutti...
    spero di aver trovato il luogo della risposta!
    davvero nn riesco a capire cosa fare per risolvere il mio problema...
    ho cambiato linguaggio per un sito.
    sono passato da asp a php
    adesso grazie al file htaccess vorrei mantenere l'indicizzazione sui motori di ricerca sfruttando il
    rewriterule (mi pare) 301.
    il mio problema è che nn riesco a portare le variabili querystring
    il passaggio che vorrei ottenere è

    index.asp?ub=item&id=var1 in pagina1.php?id=var1

    index.asp?ub=var1&id=var2 in pagina2.php?ub=var1&id=var2

    ho fatto qualche tentativo ma ho ottenuto un redirect senza variabili.
    inoltre mi chiedevo se posso reindirizzare a qualcosa del tipo

    index.asp?ub=item&id=var1 in /categoria/var1

    sfruttando un reindirizzamento che mi riesce già
    spero davvero in un aiuto...
    nel frattempo vi ringrazio!
    ciao


  • User Newbie

    ci sono quasi riuscito...
    con il seguente codice riesco ad indirizzare verso la pagina ricostruita

    RewriteCond %{QUERY_STRING} ub=item&id=([^&]+)?
    RewriteRule ^index.asp /libri-by/id/%1.html [R=301,L]

    il problema è che oltre alla variabile che mi serve, ovvero "id", mi riscrive di seguito tutte le querystring
    ottenendo il seguente risultato

    libri-by/id/1.html?ub=item&id=1

    io invece vorrei soltato

    libri-by/id/1.html

    dove sbaglio?
    grazie


  • Moderatore

    Ciao gt_salvo e benvenuto sul Forum GT.
    Prova ad aggiugere il punto interrogativo al secondo url nel rewrite rule, qualcosa del genere:

    
    RewriteCond %{QUERY_STRING} ub=item&id=([^&]+)?
    RewriteRule ^index.asp /libri-by/id/%1.html? [R=301,L]
    
    

  • User Newbie

    grazie FDA per la risposta
    ho appena risolto ma in altro modo
    lo scrivo per utilità di altri capitati in questo stesso problema
    in pratica ho messo [301, QSD] alla fine
    QSD infatti toglie le query string che si porta dietro dalla regola
    grazie ancora


  • Moderatore

    Ottimo, grazie del contributo. 🙂


  • User

    Seguendo anche la vostra discussione sto cercando di risolvere quanto segue:

    ho degli articoli da componente duplicati del tipo
    sito/dirA/1-testo1-teston.html
    sito/dirB/1-testo1-teston.html
    sito/dirC/1-testo1-teston.html

    Vorrei reindirizzare il tutto in:

    sito/dirD/1-testo1-teston.html

    Ma devo condizionare il rewrite solo all'indirizzo che dopo la seconda dir inizia con un numero "sito/dirA/1-testo1-teston.html" quindi tranne sito/dirN/testo.html

    Ho provato quanto segue ma non ho risposte dal server

    RewriteCond %{QUERY_STRING} ^/([^/]+)/([0-9]+)-([^/]+)$
    RewriteRule ^/([^/]+)/([0-9]+)-([^/]+)$ accatitipi.sito.ext/dir/$2-$3 [R=301]

    non riesco proprio a risolvere ❌x come posso fare?


  • User Newbie

    Salve ragazzi ho un problema con il redirect e le query string.
    Vorrei reindirizzare le pagine di un vecchio sito alla nuova courtesy page temporanea
    in attesa di rifare daccapo il sito.
    Il problema è che i vecchi indirizzi sono di questo tipo "www-vinicolacherchi-it/vini.php?lang=it"
    quindi ho provato inserendo nel file htaccess questa stringa

    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/vini.php$
    RewriteCond %{QUERY_STRING} ^lang=it$
    RewriteRule ^(.*)$ nuovo link [L,R=301]

    ma non sembra funzionare.
    Suggerimenti? Dove sto sbagliando?

    facendo così perdo il posizionamento di queste pagine o no?
    Una volta rifatto il sito, quindi avendo nuovi indirizzi per quelle pagine,
    dovrò di nuovo impostare un r301?

    Grazie per l'aiuto.