- Home
- Categorie
- Coding e Sistemistica
- Joomla!
- [Joomla 2.5 e 3.x] Come aggiungere il suffisso php o htm all'URL
-
[Joomla 2.5 e 3.x] Come aggiungere il suffisso php o htm all'URL
Joomla 2.5 e 3 permettono di impostare html come suffisso URL (ma non php o htm): per farlo basta andare nel back end, menu superiore > global configuration > seo settings > adds suffix to url > Yes.
Di solito insieme a questa impostazione si mettono anche:
search engine friendly urls > Yes
use url rewriting > YesIn questo modo l'URL dominio.com/pagina diviene dominio.com/pagina.html .
Suffisso URL, rel canonical e contenuti duplicati
Uno svantaggio dell'uso del suffisso secondo me è dovuto alla creazione di contenuti duplicati, cioè di più URL che presentano gli stessi dati. In caso di attivazione del suffisso url, infatti, i due URL sopra sono entrambi attivi.A differenza di Joomla 2.5, la release 3.x gestisce anche il rel canonical. Con il suffisso URL attivato in Joomla 3, la pagina dominio.com/pagina presenta il link rel canonical verso pagina.com/pagina.html . Leggi anche qui: http://www.giorgiotave.it/forum/joomla/221062-joomla-3-3-adds-suffix-url-problemi-con-rel-canonical-e-contenuti-duplicati.html
Fin qui si è parlato del suffisso html. Si può però aggiungere anche un suffisso diverso come htm o php.
Come aggiungere il suffisso URL php o htm a Joomla 2.5
Il file responsabile di questa funzionalità di Joomla è il router.php che si trova in questo percorso: root di Joomla 2.5/includes/router.phpPer aggiungere il suffisso php all'url procediamo come segue:
- impostiamo su Yes le 3 voci sopra e in particolare adds suffix to url.
- archiviamo una copia del file router.php, quindi modifichiamo il file come segue:
Al posto della riga 67:
$vars['format'] = $suffix;
inseriamo questo (sostituzione):
// $vars['format'] = $suffix; questa riga va eliminata e sostituita con le seguenti $path = str_replace('.'.$suffix,'' , $path); if ($suffix == 'php') { $path = str_replace('.'.$suffix,'' , $path); $vars['format'] = 'html'; } else { $path = str_replace('.'.$suffix,'' , $path); $vars['format'] = $suffix; }
Al posto della riga 92:
if ($format = $uri->getVar('format', 'html')) {
inseriamo questo (sostituzione):
if ($format = $uri->getVar('format', 'php')) { // basta sostituire html con php
Ottenere gli URL con suffisso .htm su Joomla 2.5
La procedura è identica a quella vista per il suffisso php, con l'unica differenza di "htm" al posto di "php" (una sostituzione nel primo blocco di codice e una nel secondo).Cambiare suffisso url in Joomla 3
Concettualmente la procedura è quella già vista per Joomla 2.5, ma a cambiare sono il nome del file e il suo percorso.
Identica procedura, quindi, ma a questo percorso: *root di Joomla 3>libraries>cms>router>site.php *.Anche il codice da sostituire è identico, ma in questo caso si trova rispettivamente alle righe 82 e 118.
Note
Nonostante abbia indicato la procedura (richiesta anche qui: http://www.giorgiotave.it/forum/joomla/220323-scrivere-gli-url-come-nella-versione-del-sito-senza-joomla-3.html) sono contrario ad applicarla per diversi motivi:- il sistema di routing di Joomla e il componente SEO/SEF non risolvono il problema dei contenuti duplicati, in quanto con il suffisso URL attivo le pagine sono raggiungibili anche dall'URL senza suffisso;
- Joomla 2.5 di base non imposta il rel canonical;
- quando si attiva un suffisso URL tra htm e php, sono raggiungibili anche le pagine agli URL con suffisso html (ancora contenuti duplicati);
- modificare i file del core è sbagliato, in quanto al successivo aggiornamento si perdono le modifiche effettuate.
A mio parere l'unica maniera per risolvere tutti i problemi di cui sopra (e alcuni altri collaterali, sempre in ambito SEO/SEF) è un plugin, che è la maniera corretta per fare l'override.
-
Ciao Francesco ultimamente ti segue e leggo con molta attenzione i tuoi articoli.Ti volevo chiedere ma è meglio aggiungere il suffisso .html alle URL oppure è meglio senza?
Grazie e buonagiornata
-
Ciao, taluni sostengono che aggiungere il suffisso .html sia utile a non fare riconoscere Joomla, cosa che non condivido. Personalmente preferisco senza perché l'url è più breve e più facile da scrivere.
Di nulla e grazie a te per essere dei nostri sul Forum GT.