Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. CMS & Piattaforme Self-Hosted
    5. joomla url duplicati e contenuti duplicati cosa consigliate
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • fda
      fda Moderatore • ultima modifica di

      Ciao,
      farò un test, ma a occhio non risolve.

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • P
        p.il.musicante User • ultima modifica di

        Ti ringrazio.

        nel caso non adempisse del tutto al compito potresti aiutarmi a migliorarlo

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • fda
          fda Moderatore • ultima modifica di

          Questione interessante e da seguire, sono d'accordo. :smile5:
          Grazie a te.

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • P
            p.il.musicante User • ultima modifica di

            Ciao

            Buone Feste a tutti

            hai avuto modo di testare il codice?

            ah dimenticavo

            il codice l'ho inserito nel file che genera la pagina articolo

            templates/mytemplate/html/com_content/article/default.php

            così viene richiamato solo quando viene richiesta una pagina articolo
            l'ho inserito tra i tag <?php ?> prima dell'html dentro il file

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • fda
              fda Moderatore • ultima modifica di

              Ciao p_il_musicante,
              buone feste anche a te. :smile5:
              Per la verifica non ancora, me lo impedisce il mio Io pigro e festoso.:D

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • fda
                fda Moderatore • ultima modifica di

                Ciao p_il_musicante,
                l'ho provato e confermo i dubbi:

                1. gestisce soltanto alcune situazioni (qui però si può migliorare);
                2. sbagliato immettere il codice a livello di template (anche qui si può intervenire);
                3. ho dubbi su compatibilità e affidabilità con altre estensioni/configurazioni.

                Se ci sono novità aggiorno il thread. :wink3:

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • P
                  p.il.musicante User • ultima modifica di

                  Grazie FDA

                  Ti rigranzio per i test che hai fatto

                  sul punto 2) perchè è sbagliato se io utilizzo solo quel template?

                  per il punto 1) pensi che come punto di partenza è corretto per poi migliorare?

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • fda
                    fda Moderatore • ultima modifica di

                    Sul punto 1: attualmente non risolve alcune situazioni con relative url, ma soltanto specifiche url legate agli articoli. Secondo me il "punto di partenza" valido è l'idea, mentre per l'implementazione occorre lavorarci sopra.
                    A riprova dell'attualità e della complessità del problema leggi la roadmap dello sviluppo pubblicata oggi (3 gennaio 2015) su Joomla.org, che prevede per il primo quadrimestre 2016:

                    *- Improve Search Engine Optimization and SEF URL's. Take advantage of currently available resources.

                    • Explore new routing options which can improve SEF while still maintaining backwards compatibility.*

                    Link di approfondimento: docs.joomla.org/index.php?title=Joomla_CMS_Development_Roadmap

                    Sul punto 2: dobbiamo mantenere per quanto possibile separata la presentazione dei dati dalla logica di funzionamento.

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • P
                      p.il.musicante User • ultima modifica di

                      Grazie per il link sulla roadmap

                      solo che aspettare il 2016 per qualcosa (si spera di definitivo) che risolva la questione mi sembrebbe un pò troppo tempo 😮

                      io sto provando ad implementare qualcos'altro sempre partendo da quello che ho già iniziato

                      $uri_correct = JURI::getInstance();
                                
                                  $link_base = $uri_correct->getScheme() . "://" . $uri_correct->getHost() ;
                                  
                                  jimport('joomla.language.helper');
                                  $languages = JLanguageHelper::getLanguages('lang_code');
                                  $lang_code = JFactory::getLanguage()->getTag();
                                  $langtag_site = $languages[$lang_code]->sef;
                                  
                                  //$lang = JFactory::getLanguage();
                                  //$langtag_site = $lang->getTag();
                      
                                          
                                  //connesione al DB
                                  $db = JFactory::getDbo();
                                  //content id
                                  $id = jrequest::getInt('id');
                                  
                                  $db->setQuery("SELECT cont.alias FROM #__content cont WHERE cont.id='$id'");
                                  $alias_content = $db->loadResult();
                                  
                                  $db->setQuery("SELECT cont.catid FROM cont WHERE cont.id='$id'");
                                  $cat_id = $db->loadResult();
                                  
                                  $db->setQuery("SELECT cat.path FROM #__categories cat WHERE cat.id='$cat_id'");
                                  $category_path = $db->loadResult();
                                  
                                   // in caso di url "sbagliata" verso la pagina articolo 
                                 
                                  $link_article_correct = $link_base.$langtag_site."/". $category_path."/".$alias_content;
                      
                                  $currenturl = JURI::current(); // url corrente
                                  
                                  if ($currenturl != $link_article_correct) {
                                     
                                      $this->error = JError::raiseError(404, JText::_('COM_CONTENT_ERROR_ARTICLE_NOT_FOUND'));
                                         $this->debug = false;
                                  }
                      

                      che ne pensi?

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • fda
                        fda Moderatore • ultima modifica di

                        solo che aspettare il 2016 per qualcosa (si spera di definitivo) che risolva la questione mi sembrebbe un pò troppo tempo

                        Concordo! :vai:

                        che ne pensi?

                        Tre osservazioni:

                        1. Mancano dei "pezzi", ad esempio i menu e le query string: come ci comportiamo?
                        2. A livello di template non si può, anche e non solo perché dovremmo modificare tanti file diversi di template e non soltanto quello relativo agli articoli: va creata necessariamente un'estensione, che può essere pure un plugin, quindi più semplice.
                        3. Per quello che deve fare l'estensione e per quello che già fa Joomla, forse non serve la connessione al db.

                        Ovviamente non prendere quanto ho scritto per oro colato, sono soltanto opinioni.
                        Aggiungo qualche spunto a beneficio di tutti, chi vuole condividere test ed esperienze è il benvenuto! 🙂

                        1. La prima cosa da fare secondo me è leggere questo documento di Joomla, fino alla fine perché proprio l'ultimo paragrafo "Routers and Menu Items" spiega qualcosa che talvolta sfugge: docs.joomla.org/Supporting_SEF_URLs_in_your_component
                        2. Altra pagina interessante da Joomla: docs.joomla.org/Search_Engine_Friendly_URLs
                        3. Per inquadrare il problema bisogna partire da alcuni concetti chiave, che elenco come parole senza un ordine preciso: routing, menu item, seo sef, segmenti, canonical, query string, user's intention, com_content, components, 404, *compatibilità *(con altre estensioni), *robusto *(non viene messo in crisi da altre cose), *affidabile *(funziona e non combina guai, ad esempio provocando l'indicizzazione di urls errate).

                        Suggerimenti:

                        1. Consultare il codice delle estensioni seo sef per trarre ispirazione.
                        2. Spulciare il codice del core di Joomla per comprendere come lavora a livello di routing e di seo sef.
                        3. Non dimenticare che Joomla non è una piattaforma di blogging ma, a modo suo, una piattaforma per creare web applications basata su MVC e, in quanto tale, sarebbe sbagliato ingabbiarla in una cosa rigida per la quale esistono altri cms a partire da WordPress. Se il mio sito è fatto sostanzialmente di post e permalink "1 a 1" allora potrei anche usare WP.

                        Discussioni utili sul Forum GT:
                        http://www.giorgiotave.it/forum/joomla/215313-problemi-di-pagine-duplicate-e-redirect.html
                        http://www.giorgiotave.it/forum/joomla/221062-joomla-3-3-adds-suffix-url-problemi-con-rel-canonical-e-contenuti-duplicati.html
                        http://www.giorgiotave.it/forum/joomla/221075-joomla-3-3-rel-canonical-e-query-string.html
                        http://www.giorgiotave.it/forum/joomla/224245-e-possibileppersonalizzare-url-di-joomla-2-5-e-3-0-questo-modo.html

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • P
                          p.il.musicante User • ultima modifica di

                          Salve a tutti

                          dopo aver fatto passare al spider del motore di ricerca nel mio sito

                          ho notato sui web master tool che ho alcuni tag che risultano duplicati

                          nelle url ho notato che lo spider le richiede nel seguente formato

                          /category/myarticle?limit=4&start=4 (aggiunge dei parametri)

                          oltre a richiederle con l'url standard **/category/myarticle

                          a voi è capitata una cosa del genere ?

                          come potrei risolvere?

                          grazie
                          **

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • fda
                            fda Moderatore • ultima modifica di

                            Ciao, puoi inserire una paio di url completi (link non attivo)?

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • P
                              p.il.musicante User • ultima modifica di

                              Ciao

                              ti rigrazio per la rapida risposta

                              probabilmente ho capito a cosa è dovuto

                              al pagination del template

                              poichè ciò si verifica solo nella pagina articolo

                              in pratica quei parametri vanno ad influire su quanti e quali articoli correlati all'articolo corrente prelevare

                              per il momento ho inserito nel file robots.txt la seguente istruzione
                              Disallow: /*?

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • fda
                                fda Moderatore • ultima modifica di

                                In questo modo blocchi l'accesso a tutti gli url con parametri, cioè quelli del tipo: tuodominio.estensione/qualunquecosa?qualunquecosa
                                Non è detto che un tale url non debba essere indicizzato.
                                Io non toccherei il robots e lavorerei invece sul codice per inserire un noindex dove serve, cosa che puoi fare via estensione da installare, con un tuo plugin o addirittura - in maniera poco elegante - via php.

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • P
                                  p.il.musicante User • ultima modifica di

                                  quale estensione consiglieresti

                                  o se è possible farlo tramite plug in (come si potrebbe fare)

                                  in pratica quelle url sono dovute ai releated articles

                                  diciamo che vorrei vitare di installre nuove estensione se non streettamente neccessario

                                  o tramite php (intendi mdoficare il fiel router.php)

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • fda
                                    fda Moderatore • ultima modifica di

                                    Ciao p_il_musicante,
                                    ti consiglio di leggere queste discussioni (ma sul forum ne trovi altre dello stesso tenore):
                                    http://www.giorgiotave.it/forum/joomla/216299-risolto-problema-paginazione-blog-joomla.html
                                    http://www.giorgiotave.it/forum/title-description-e-struttura/216762-pagination-rel-next-e-rel-prev-e-canonical-tag-ce-conflitto.html

                                    Per quanto riguarda la paginazione, verifica che Joomla usi il rel prev e next correttamente e se puoi indirizza il canonical verso la "prima pagina", cioè quella senza la query string ?limit... .

                                    Al momento non ricordo se le ultime release di Joomla facciano il tutto senza bisogno di altre estensioni, né quali estensioni si comportino bene. Prendo nota e ti faccio sapere (grazie del suggerimento, controllo i miei siti se dopo l'aggiornamento sono a posto senza modifiche "a mano"). :smile5:

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • P
                                      p.il.musicante User • ultima modifica di

                                      Grazie per l'ottimo suggerimento

                                      secondo me la cosa migliore e pendere il canonical del link della pagina articolo senza i parametri

                                      tipo qualccsoa del genere

                                      
                                      $pag_1 = explode ("?start",$currenturl);
                                      $pag_2 = explode ("?limit",$currenturl);
                                      
                                      

                                      che ne pensi si può realizzare?

                                      poichè a me è solo per la pagina articolo si vrifica questo fenomeno

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • fda
                                        fda Moderatore • ultima modifica di

                                        Verifica dove inserisci questo codice perché deve sostituire l'attuale rel canonical (ce ne deve essere soltanto uno) e potresti dovere fare una regex oppure un'interrogazione a db per stabilire quando applicare quest'istruzione.

                                        Nota che ottieni un vettore del quale devi prendere soltanto il primo elemento, cioè $pag_1[0] oppure $pag_2[0].

                                        Comunque esistono altre funzioni php per tagliare la query string, cerca su php.net. Attento alle funzioni che individuano le regex, rallentano di molto il sistema.

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        • P
                                          p.il.musicante User • ultima modifica di

                                          ti ringrazio

                                          tu hai qualche suggerimento su come implementare questa funzionalità?

                                          io lo metterei nel file default.php del com_content del template

                                          0 Miglior Risposta Ringrazia Cita Rispondi

                                            1 Risposta Ultima Risposta
                                          • P
                                            p.il.musicante User • ultima modifica di

                                            che ne dici del codice di seguito

                                            
                                            
                                            $doc_data = $document->getHeadData(); 
                                            $url        = JURI::root(); 
                                            $sch        = parse_url($url, PHP_URL_SCHEME); 
                                            $server     = parse_url($url, PHP_URL_HOST); 
                                            $canonical  = $this->escape($_SERVER['REQUEST_URI']);
                                            $str_start = strpos($canonical, '?start');
                                            if($str_start!==FALSE) {
                                            $canonical = substr($canonical,0,$str_start);
                                            }
                                            $str_limit = strpos($canonical, '?limit');
                                            if($str_limit!==FALSE) {
                                            $canonical = substr($canonical,0,$str_limit);
                                            } 
                                            $newtag     = '<link rel="canonical" href="'.$sch.'://'.$server.$canonical.'"/>'  ;
                                            $replaced = false; 
                                            foreach ($doc_data['custom'] as $key=>$c) {    
                                             if (strpos($c, 'rel="canonical"')!==FALSE) {        
                                             $doc_data['custom'][$key] = $newtag;         
                                            $replaced = true;     
                                            } } 
                                            if (!$replaced) {     
                                            $doc_data['custom'][] = $newtag; }  
                                            $document->setHeadData($doc_data);
                                            
                                            
                                            0 Miglior Risposta Ringrazia Cita Rispondi

                                              1 Risposta Ultima Risposta
                                            Caricamento altri post
                                            Rispondi
                                            • Topic risposta
                                            Effettua l'accesso per rispondere
                                            • Da Vecchi a Nuovi
                                            • Da Nuovi a Vecchi
                                            • Più Voti