• Moderatore

    rewriterule che non modifica gli url prodotti dal CMS

    Ciao,

    sono intervenuto per modificare la struttura di alcuni URL. L'istruzione su cui ho lavorato è

    RewriteRule ^Sede-(.*)-([0-9])-([^/]+)-([^/]+).html$ index.php?id_lang=$2&id_sede=$3&id_p=$4 
    

    ed ho modificato **Sede- **con un altro termine più vicino alle mie esigenze.

    La riscrittura funziona, ma non sono aggiornati in automatico i link interni che portano a quelle pagine. Il CMS quindi produce in qualche altro modo quegli url. E' un cms proprietario sviluppato in php. Avete idea cosa dovrei cercare per trovare l'istruzione che crea quei link o devo ricorrere necessariamente al programmatore?

    Un saluto


  • Admin

    Sì ovviamente va programmato all'interno del CMS per richiamare le URL SEO friendly.


  • Moderatore

    Ciao Andrea e grazie della tua risposta.

    Hai un'idea dove dovrei mettere mano (quale istruzione andare a cercare) o è un lavoro che va gestito in altro modo, tipo chiamo il programmatore php?

    Grazie 🙂


  • Admin

    Non so come sia fatto il tuo CMS, ma la cosa più semplice è che ci sia una funzione di generazione URL che richiami dal Frontend.


  • User

    ciao,
    intendi dire che non aggiorna in automatico, ma hai il modo per aggiornarli manualmente?
    Se usi firefox, cancella la cache dopo ogni volta che salvi il file di htaccess. Su alcune versioni, avevo riscontrato problemi.

    Forse il CMS usa estensioni come per esempio Typo3 e ve ne è una che riguarda gli URL rewrite?
    O forse c'è da sistemare nel CMS il "base URL"?
    Ha il CMS un Backend? Potresti dare un'occhiata anche alla "cache". Di solito bosogna cancellare le cache sia dei contenuti che dei link generati per ottenere quelli nuovi.
    Potresti anche dare occhiata nel HTaccess se la vi sono altri redirect.
    Dare un occhiata ai codici per vedere se il programmatore ha inserito dei commenti in ogni file, spiegando la funzione del codice?
    Forse puoi usare per es. firebug per firefox e, mentre si carica il sito, controlli le diverse connessioni e i richiami dei collegamenti, per vedere se sono richiamati piu volte.

    ma è un cms unico, intendo dire programmato per quel sito e usato solo li?


  • Moderatore

    Ciao quattrossa e grazie dei bei spunti di analisi, ne avrò per un pò prima di testarli tutti

    @quattrossa said:

    ....ma è un cms unico, intendo dire programmato per quel sito e usato solo li?

    E' un cms programmato in php per quel sito. Ho avuto qualche replica, ma chi l'ha fatto ha chiuso..Ciao


  • Moderatore

    @quattrossa said:

    puoi usare per es. firebug per firefox e, mentre si carica il sito, controlli le diverse connessioni e i richiami dei collegamenti, per vedere se sono richiamati piu volte.

    Ciao quattrossa, non ho capito cosa intendi di preciso con questo passaggio. Ho guardato nell'HTML, anche tramite firebug.

    Grazie
    Ciao
    Roberto


  • User

    Ciao Roberto,

    apri firefox e attiva firebug
    nel Menü di Firebug clicca sull'ultima voce: network e attivala, in caso sia deattivata.
    Clicca anche su "tutti o mostra tutti" ora non so cosa vi sia scritto nel menu italiano.

    Collegati al sito che devi controllare e firebug ti mostra una lista di tutti i dati caricati, dalle immagini, ai css, agli script
    Cliccando poi sui diversi punti, puoi vedere cosa e dove viene caricato nel sito.

    per es. da un sito nostro avevo notato che un file di .js veniva richiamato e caricato 4 volte sulla pagina, quando una volta sarebbe bastato. (rigenerava i collegamenti alle pagine sottostanti)

    Sotto la voce del Menu "DOM" puoi vedere anche se il base url è segnato da qualche parte; lo trovi sotto la voce: baseURI
    cosi come diverse configurazioni degli script.

    Hai provato altri modi di scrittura per il file di HTACCESS per il rewrite?

    Cosa vuoi fare esattamente con il rewrite? Modificare la struttura parzialmente? Url dinamici in statici? (non che poi l'errore che cerchiamo è nalla formula del rewrite o nel file di htaccess;)


  • Moderatore

    Ciao quattrossa,

    @quattrossa said:

    Ciao Roberto,
    Collegati al sito che devi controllare e firebug ti mostra una lista di tutti i dati caricati, dalle immagini, ai css, agli script
    Cliccando poi sui diversi punti, puoi vedere cosa e dove viene caricato nel sito.

    sto guardando qui e al momento non sto vedendo niente che riguardi la formazione degli URL che vorrei riscrivere

    @quattrossa said:

    Hai provato altri modi di scrittura per il file di HTACCESS per il rewrite?

    Prima di postare qui ho provato, come dicevo, a modificare questa istruzione, cambiando Sede in Nuova-parola

    RewriteRule ^Sede-(.*)-([0-9])-([^/]+)-([^/]+).html$ index.php?id_lang=$2&id_sede=$3&id_p=$4 
    

    e nell'URL la modifica ha funzionato. Il punto è che i link che si trovano nelle pagine sono rimasti tali e quali "Sede-..............html"

    La caratteristica comune di questi url (sono così http://www.nomedominio.it/Sede-nomesede-0-1-49.html) è di contenere, oltre a "Sede" i parametri "-0-" e "-49.html" nell'URL .

    La pagina che contiene i link di cui parlo è creata con un'istruzione nel .htaccess, che è

    RewriteRule ^Sedi.html$ index.php?id_lang=$2&id_p=49 
    

    Anch'essa ha il parametro p=49

    @quattrossa said:

    Cosa vuoi fare esattamente con il rewrite? Modificare la struttura parzialmente? Url dinamici in statici? (non che poi l'errore che cerchiamo è nalla formula del rewrite o nel file di htaccess;)

    Volevo fare una modifica di testo nell'URL, credendo che lavorare sul htaccess fosse sufficiente. Ma non mi sembra sia così.

    Un grazie ancora per le tue risposte competenti.

    Roberto


  • User

    ciao,
    Hai trovato il modo di cancellare la cache del cms?
    Quello che potresti ancora provare è sostituire manualmente un link e vedere se la sostituzione manuale funziona. è anche possibile che il link, nonostante tu lo abbia corretto, sia salvato da qualche parte. In questo modo la pagina sarà allora raggiungibile sia con il collegamento vecchio che con quello nuovo.

    hai per caso nell htaccess altri redirect ?
    Quello che mi viene ancora in mente è che i redirect sono gerarchici (se è la parola esatta 😉
    per es.

    nomedominio.com
    nomedominio . com/pagina1/test1
    nomedominio . com/pagina1/test1/test2
    

    perchè i test 1 e il test 2 funzioni, il reditrect che colpisce il dominio, in questo caso "nomedominio.com" deve essere scritto per primo.
    la giusta sequenza sarebbe:

    nomedominio . com/pagina1/test1/test2
    nomedominio . com/pagina1/test1
    nomedominio . com
    

    se si cambia la sequenza in cui si scrivono, uno può sovvrascrivere l'altro.
    Lo so che poco tempo fa ho reindirizzato piu di 400 collegamenti di un nuovo sito e c'èra da diventare matti... basta un piccolo sbaglio di sequenza e non funzionano gli altri..

    Se no potresti ancora provare una strisci diverse dell rewrite, per es. mattendola quella base, senza cambiare il link compoleto e le altre lingue. In questo modo, passo per passo, aggiungi le altre string e vedi se una delle string aggiunte ti da errore.

    Esempio li puoi trovare qui:
    (pagina in tedesco, ma se entri con crome magari te la traduce al volo e gli script, si comprendono ugualmente:

    suchmaschinentricks*****.****at/tipps-tricks/mod_rewrite.html
    (togli stelline ****)

    altra cosa banale è il browser; lo chiedo perchè a volte è talmente banale che non la si provs 😉 hai provato a cambiare browser, cosi come ad ogni cambio dell'htaccess cancellare la cache e farlo ripartire?
    A me firefox per es. se non cancellavo la cache e non lo facevo ripartire mi ridava sempre i link vecchi, nonnostante gli altri bworser mi segnavano quelli attualizzati.

    un salutone
    Antonio