• User Newbie

    Rimuovere una variabile dall'url

    Buongiorno a tutti,
    sono nuovo del forum, e decisamente nuovo anche in fatto di rewriterules 🙂
    e avrei questo problema:
    ho un sito in 4 lingue gia indicizzato da google e pochi giorni fa sono riuscito ad eliminare la variabile lang=x dall'url perchè ora la gestisco con l'utilizzo di 4 domini.
    il problema è che google indicizzando le pagine nuove senza il parametro lang ed avendo ancora quelle "con" il parametro me le potrebbe vedere come contenuto duplicato giusto?

    io ho provato a scivere una regola per gestire la cosa ma non mi funziona.
    praticamente vorrei prendere l'url in ingresso "con" lang e fare il 301 sullo stesso indirizzo senza.
    RewriteRule /([^/]+).php?lang=([^/]+)$ /$1.php [R=301,L]

    sapete dirmi dove sbaglio?

    Ciao:ciauz:


  • Super User

    Ciao carloast82 e benvenuto nel forum GT 🙂

    La regola è un po' pasticciata.. intanto apri la sequenza con un ^ e togli il backslash iniziale che non c'entra niente

    Ah no, aspetta, hai proprio sbagliato strada (non cancello la riga sopra perchè ti potrebbe fare comodo in futuro).. non è possibile utilizzare "?" in una regexp, devi usare RewriteCond col parametro QUERY_STRING.

    Ripassati anche [QSA] che potrebbe farti comodo (o forse far danno perchè ripescherebbe ancora una volta lang? ti lascio la riflessione)


  • User Newbie

    Grazie mille 🙂
    alla fine mi sono messo li co un mio amico che è più pratico di me e abbiamo risolto seguendo il tuo consiglio....
    posto il codice nel caso possa servire a qualcuno in futuro 🙂

    [PHP]
    RewriteCond %{QUERY_STRING} ^(.)lang=it&(.)$
    RewriteRule /(.).php http:||www_miosito_it/$1.php?%1%2 [R=301,L]
    RewriteCond %{QUERY_STRING} ^(.
    )lang=it(.)$
    RewriteRule /(.
    ).php http:||www_miosito_it/$1.php?%1%2 [R=301,L]
    [/PHP]

    (il link del sito l'ho sritto così perchè mi da errore quando pubblico)
    ci sono i 2 casi - se lang è la prima variabile o se è la seconda o terza e così via..... volevamo provare a farla in una riga sola mettendo la condizione (.&) ma non funzionava.... come si potrebbe fare a dire che & può essere presente da 0 a 1 volta? più che altro il carattere '&' si può scrivere così o bisogna mettere che so... & ?

    Grazie di tutto
    Ciaoo:ciauz: