Partage
  • Partager sur Facebook
  • Partager sur Twitter

Modifier l'URL d'une page ?

    27 février 2009 à 21:56:08

    Bonsoir amis Zér0s,

    Cette fois je pose une question à laquelle je ne trouve que des réponses ambigües, aussi vais-je la formuler de manière précise : est-il possible via un script Javascript d'éditer le texte de la barre d'adresse du navigateur, sans recharger la page ?

    Utilité : avoir une URL saisissable pour toutes les pages d'un site en AJAX de façon à ce qu'elles figurent dans l'historique de navigation et à ce qu'elles puissent être mises en favori ou partagées à des connaissances.

    Actuellement mon site fonctionne avec des liens GET (monsite.fr/index.php?page="mapage") interceptés en JS, ce qui permet la bonne indexation des pages par les moteurs de recherche tout en ayant un fonctionnement AJAX. Avant j'utilisais des ancres (monsite.fr/#mapage), ce qui n'était pas bon pour le référencement mais qui avait l'avantage d'afficher une "URL" différente pour chaque contenu.

    bien-sûr, je peux facilement réécrire mes ancres dans le href="" des liens via Javascript, elles s'afficheront dans la barre d'adresse, mais ce système risque de cannibalisme le précédent.

    Merci pour vos lumières.
    • Partager sur Facebook
    • Partager sur Twitter
      27 février 2009 à 22:14:48

      Je vois pas trop de solution mais l'AJAX à la base, c'est pas trop conseillé, déjà rien que pour les moteurs de recherche.
      Par contre, je sais qu'il y a moyen de "chipoter" à l'historique avec l'objet history mais je sais pas trop ce que ça permet de faire.
      Si non, un petit traitement en PHP suffit non ?
      • Partager sur Facebook
      • Partager sur Twitter
        27 février 2009 à 23:26:21

        Détrompe-toi, quand je regarde la structure du site je ne vois rien que les moteurs ne puisse indexer puisque chaque contenu est visible si Javascript est désactivé, qu'il a une adresse URL unique et que cette adresse figure sur mes liens internes.

        Le seul problème c'est que comme j'intercepte ces liens avec un "return false;" sur l'évènement onclick le visiteur ne voit pas l'adresse URL changer, ce qui est peu pratique pour retrouver la page.

        C'est vraiment une question d'accessibilité et non de référencement ou de fonctionnement interne.
        Edit : j'ai vu des sites en Flash modifier l'adresse de la barre d'adresse quand on navigue, et ce sans couper l'animation flash (j'en conclue que c'est réalisé sans rechargement), malheureusement je n'ai pas pensé sur le moment à regarder le code source...
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          28 février 2009 à 0:54:51

          bah tu parses les urls de tes liens a l'arrache.

          pour tout ce qui est bookmark, tu peux rajouter un boutton direct sur ton site pour mettre dans les favoris vu que tu peux choisir l'url rajoutée aux favoris a priori.

          Pour ceux qui ont fait les sauvages avec un Ctrl+D sur ta page en exemple.com/#user/mickey, ce que je ferais, avec mod_rewrite ou autre, une redirection permanante de cette url vers exemple.com/user/mickey et ce pour toutes les url avec un # dedans. Une redirection permanante demandera de mettre a jour le favoris normalement (en tous cas sour FF oui).

          Et ça va bien puisque techniquement tu ne fais jamais de requete pour une page avec un # dedans.

          • Partager sur Facebook
          • Partager sur Twitter
            28 février 2009 à 11:00:14

            Modifier l'URL comme ça je pense pas que ça soit possible mais par contre, il doit y avoir moyen de parser l'URL mais là tu aurais un rafraichissement.
            Si non, ce que tu peux faire c'est 2 solutions, une où l'URL ne change pas et l'autre qui parse les URL envoyées comme ça on peut ajouter des url et tomber sur la bonne page mais le visiteur ne connaitra pas l'URL vu qu'elle ne s'affiche pas...
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              28 février 2009 à 11:26:51

              Homme de peu de foi :

              Le (criticable) code trouvé qui traine sur le net
              function favoris(url,titre) {
              if ( navigator.appName != 'Microsoft Internet Explorer' )
              { window.sidebar.addPanel(url,titre,''); }
              else { window.external.AddFavorite(url,titre); } }
              


              un poil mieux mais pas encore top :
              function favoris(url,titre) {
                  if (window.external) {
                      window.external.AddFavorite(url, titre);
                  }
                  else if (window.sidebar) { 
                      window.sidebar.addPanel(titre, url, ''); 
                  }
                  else {
                      // opera et le reste
                  }
              }
              


              j'ai pas IE, peux pas tester dessus. Mais sous FF no problemo.
              • Partager sur Facebook
              • Partager sur Twitter
                28 février 2009 à 11:28:45

                Oui mais c'est pas pour modifier l'url ça...
                C'est pour ajouter aux favoris.
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  28 février 2009 à 11:32:52

                  comme il dit, tu peux modifier les ancres sans changement de page, n'importe quelle autre partie de l'url et tu fais une redirection, oui.

                  Je vois pas le problème, ce que j'ai expliqué plus haut couvre tous les cas qu'il veut non ? J'ai mal expliquer alors…
                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 février 2009 à 11:34:38

                    Non, c'est peut-être moi qui ai rien compris, j'avais déjà pas compris qu'il voulait utiliser les ancres...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      28 février 2009 à 12:50:33

                      Ne vous battez pas :p

                      Je suis moi-même assez partagé, parce que j'ai pensé à la solution de nod_ mais je la trouve peu élégante, car si le visiteur tombe sur le site après une recherche google (par exemple "photos +de grenouilles" ) et qu'il tombe sur cette adresse :

                      monsite.fr/portfolio/index.php?categorie=grenouilles

                      Les ancres vont s'empiler dessus pour donner par exemple :

                      monsite.fr/portfolio/index.php?categorie=grenouilles#chameaux,

                      ce qui est peu élégant. Moi j'aimerais qu'il voit

                      monsite.fr/portfolio/index.php?categorie=chameaux

                      tout simplement parce qu'une URL c'est aussi un moyen de se repérer dans les site et que si sa formulation est contradictoire c'est pas top.

                      Alors, j'ai mis la main sur le site de M6 Replay qui modifie l'URL quand on navigue, mais je ne sais pas trop comment il s'y prend
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        28 février 2009 à 12:54:24

                        ouais je vois, tendu. Je sais pas faire autrement a part une redirection la première fois. Une fois pour tout le site c'est pas cher payé sinon…
                        • Partager sur Facebook
                        • Partager sur Twitter
                          28 février 2009 à 13:02:41

                          Pourquoi pas. Est-ce que c'est pénalisant vis à vois de google ? Je me rappelle avoir lu ici qu'il n'appréciait pas trop les redirections.

                          Une autre idée qui me vient à l'esprit c'est de faire une redirection à chaque fois qu'on clique sur un lien, mais seulement quand l'animation est finie (j'utilise des effets scriptaculous pour prototype).

                          Le problème c'est que je ne sais pas si la redirection se verra (est-ce que ça fait clignoter quelque chose ?) et je ne sais pas comment faire de callback avec prototype.
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Modifier l'URL d'une page ?

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown