|
Ripristinare gli url di remosef nel passaggio dalla versione 4.5.* alla versione 4.6.* di Mambo |
![]() |
![]() |
EDIT: LEGGERE ATTENTAMENTE LE NOTE A FINE ARTICOLO Il sistema che crea gli url di Mambo è stato completamente riscritto, e il componente remo_sef non funziona più nella versione 4.6 e successive. Tuttavia si può ancora riuscire ad ottenere la costruzione di un indirizzo contenente i titoli di sezione, categoria e articolo al posto dei corrispondenti numeretti. Ciò è possibile attraverso l'uso dell'estensione sef del componente com_content. Le sef extensionsLe estensioni sef (Search Engine Friendly) si installano attraverso l'installer universale, ma in sostanza consistono in un solo file che, una volta aggiunto (anche a mano) nella cartella del rispettivo componente, viene automaticamente rilevato. Sono scaricabili dal sito mamboguru.com. Esse fanno in modo che all'interno dell'indirizzo vengano inserite parole o frasi estratte, a seconda dei casi, dal titolo della pagina, della categoria, della sezione, del componente. Tale sistema *dovrebbe favorire* (secondo me favorisce) il posizionamento sui motori di ricerca. Per i siti creati da zero, quindi, il sistema delle estensioni ha la stessa funzione che remo_sef aveva per le versioni 4.5.* di Mambo. Come riuscire ad aggiornare remosef dopo l'upgrade a mambo 4.6Problemi sorgono se il sito è già da molto tempo online e le sue pagine interne sono già state indicizzate dai motori e linkate da altri siti. Infatti in mambo 4.6 gli indirizzi vengono formati in modo diverso rispetto al passato. Ma cerchiamo di andare per gradi e di risolvere anzitutto un primo problema (NB: non l'ho scritto, dandolo per scontato, ma il componente remosef deve essere disinstallato. E' utile salvare una copia del file sef_custom.php per poter riprodurre le eventuali modifiche che erano state apportate al sistema di produzione degli url). Nella cartella componenti/com_remosef c'era un file denominato sef_custom.php che permetteva di ottenere una certa personalizzazione nella formazione degli indirizzi. Cioè permetteva di:
Chi ha sfruttato questa possibilità di personalizzazione, con la versione 4.6 può fare le stesse modifiche direttamente nel file sef.php che si trova nella cartella includes. Consiglio però di non toccare i valori di $this->sef_content_task (cioè view, blogsection, category, ecc), anche se in remosef erano stati modificati. Questo per evitare la noia di aggiustarli di nuovo nelle future versioni di Mambo. Vedremo dopo come rimediare ai fini del posizionamento sui motori. Veniamo all'altro problema. Il nuovo sistema di riscrittura degli url aggiunge qualcosa in più al path. Cioè, mentre in passato l'indirizzo che portava ad un articolo era riscritto nella forma: sito.it/view/titolo-sezione/titolo-categoria/titolo-articolo/
oggi è riscritto in questo modo: sito.it/mos/view/titolo-sezione/titolo-categoria/titolo-articolo/
Come fare per non perdere i backlink e il posizionamento? La risposta è: con un permanent redirect tramite .htaccess. Esempi: Redirect Permanent /view/ http://www.sito.com/mos/view/
Io (che usavo il file sef.custom.php pubblicato su questo sito, e che avevo personalizzato sia alcuni caratteri speciali, sia il nome dei componenti, sia il sef_content_task ho già fatto le necessarie modifiche per un sito di prova (aggiornato a mambo 4.6.1) e tutto funziona perfettamente. Questo è il mio file sef.php (da mettere nella cartella include ) che contiene l'aggiunta dei caratteri speciali e la modifica dei nomi dei componenti, e di seguito elenco i redirect che ho aggiunto nel file htaccess (che pongono rimedio alla mancata personalizzazione di sef_content_task e alla modifica del path): Redirect Permanent /apri/ http://www.sito.it/mos/view/
Rileggendo quest'articolo mi sono accorto che forse lo capirò solo io :) The end.
EDIT: VORREI PRECISARE CHE LE SEF EXTENSIONS SONO STATE REALIZZATE DA UN EX SVILUPPATORE DI MAMBO, CHE ATTUALMENTE NON FA PIU' PARTE DEL CORE DEV TEAM. EDIT2: Chi ha uno spazio su tophost avrà notato che il sistema SEF delle versioni 4.6 e 4.6.1 non funziona. Per porre rimedio al problema, (risolto dalla 4.6.2) è necessario fare una modifica al file core.classes.php che si trova nella cartella includes. Sostituire: if (isset($_SERVER['DOCUMENT_ROOT']) AND strlen($_SERVER['DOCUMENT_ROOT'])) {
con // Find information about where execution started
Si ringrazia Andrés Felipe Vargas Valencia (andphe), uno dei core developer di Mambo, per aver individuato la soluzione al problema. |
|
Ultimo aggiornamento ( venerdė 22 giugno 2007 ) |
In evidenza | ||
---|---|---|
|
Le pių lette |
---|
Ricerca rapida |
---|
|