Ripristinare gli url di remosef nel passaggio dalla versione 4.5.* alla versione 4.6.* di Mambo

Stampa E-mail

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 extensions 

Le 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.6

Problemi 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:

  • sostituire determinati caratteri presenti nell'indirizzo generato da remosef (es: lo spazio, le lettere accentate, i segni di interpunzione)
  • cambiare il nome dei componenti
  • modificare delle parole standard che appaiono nell'url (es: view, blogsection, ecc)

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/
Redirect Permanent /blogsection/ http://www.sito.com/mos/blogsection/

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/
Redirect Permanent /sez/ http://www.sito.it/mos/section/
Redirect Permanent /cat/ http://www.sito.it/mos/category/
Redirect Permanent /sez-blog/ http://www.sito.it/mos/blogsection/
Redirect Permanent /cat-blog/ http://www.sito.it/mos/blogcategory/
Redirect Permanent /sez-archivio/ http://www.sito.it/mos/archivesection/
Redirect Permanent /cat-archivio/ http://www.sito.it/mos/archivecategory/
Redirect Permanent /mostra-sez-blog/ http://www.sito.it/mos/showblogsection/

Rileggendo quest'articolo mi sono accorto che forse lo capirò solo io :)
Beh.. almeno mi servirà come promemoria. Cmq credo che chi ha smanettato con remosef possa trarvi qualche utile indicazione.

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.
IL DEV TEAM STA VALUTANDO LA POSSIBILITA' DI RISCRIVERE COMPLETAMENTE IL SISTEMA SEF.

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'])) {
$docroot = str_replace('\\', '/', str_replace('\\\\', '\\', $_SERVER['DOCUMENT_ROOT']));
}
else {
// Find information about where execution started
$origin = array_pop(debug_backtrace());
// Find the PHP script at the start, with a fix for Windows slashes
$absolutepath = str_replace('\\', '/', $origin['file']);
$localpath = $_SERVER['PHP_SELF'];
$docroot = substr($absolutepath,0,strpos($absolutepath,$localpath));
}

con

// Find information about where execution started
$origin = array_pop(debug_backtrace());
// Find the PHP script at the start, with a fix for Windows slashes
$absolutepath = str_replace('\\', '/', $origin['file']);
$localpath = $_SERVER['PHP_SELF'];
$docroot = substr($absolutepath,0,strpos($absolutepath,$localpath));

Si ringrazia Andrés Felipe Vargas Valencia (andphe), uno dei core developer di Mambo, per aver individuato la soluzione al problema.

Discuti di questo articolo sul forum. (0 posts)

Ultimo aggiornamento ( venerdė 22 giugno 2007 )

Home arrow Mambo cms arrow Ripristinare gli url di remosef nel passaggio dalla versione 4.5.* alla versione 4.6.* di Mambo

 I Feed RSS di miniDesign

In evidenza
Il file htaccess
Tutorial mappa Google
Ultime notizie
Le pių lette
Ricerca rapida