• Moderatore

    [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 > Yes

    In 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.php

    Per 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.


  • User Newbie

    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


  • Moderatore

    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. 🙂