Bonjour,
boteha_2 a écrit :
Je ne comprends pas ton emploi de $_SERVER['REQUEST_URI']
Tu récupères l'URL de la page, non ?
Mais l'URL canonique peut être différente de l'URL de la page, c'est même là le principal intérêt de l'URL canonique.
La plupart de mes URL canoniques sont en .html avec un url-rewrite dans le .htaccess.
Une URL de type monsite.com/script.php?a=nhju&u=125&h=,kjhy125 va avoir comme URL canonique monsite.com/le-beau-produit-455AL.html.
Je ne m'amuse pas à spécifier une url canonique "à la main" pour chaque page. J'automatise.
L'information donnée par $_SERVER['REQUEST_URI'] me permet de construire l'url canonique, en faisant éventuellement le même genre de transformation que ce qui est fait dans les htaccess. Mais ça permet aussi de traiter les problèmes des noms de domaine (par exemple le cas très courant où les url
www.monsite.com/xxx.php et monsite.com/xxx.php affichent la même page). La liste est non limitative. Elle dépend de ce que le développeur d'un site a bricolé sans oublier les éventuels admins de ce site (règle : ne jamais sous-estimer les nuisances potentielles des bricolages des admins).
boteha_2 a écrit :
L'article sur Google dit qu'il faut encoder les URL (on est d'accord) mais ne parle pas des URL canoniques.
Toute url est concernée où qu'elle soit. La liste des caractères qu'on n'a pas besoin d'encoder est limitée à un ensemble assez restreint. Tous les autres caractères doivent être encodés, sinon, l'url est invalide tout simplement.
En pratique, comme je l'ai déjà écrit, les briques de la chaine de traitement des urls, et en particulier les navigateurs, peuvent faire les encodages avant d'utiliser une url si cela n'a pas été fait par le développeur d'un site, ou quand l'internaute entre une url non encodée dans la barre d'adresse. Le résultat, c'est que ça marche la plupart du temps même quand un développeur ou un internaute n'encodent pas leurs urls, mais c'est un coup de bol.
Et en pratique toujours, pour les urls canoniques, si tu veux qu'elles soient vraiment canoniques, il vaut mieux les encoder complètement, sinon, il y a un risque que l'url encodée et l'url non encodée soient considérées comme deux urls distinctes.
boteha_2 a écrit :
Si Google encode les URL canoniques, que se passe-t-il avec une URL déjà encodée ?
Il me semble que l'URL subira une nouvelle transformation et deviendra fausse.
Non car tout ça est normalisé. Quand il y a un % suivi d'un code dans une url, les logiciels ont l'obligation de considérer qu'il s'agit d'un caractère encodé. Par ailleurs, toute autre séquence de caractères est considérée comme non encodée. En conséquence, Google ne se trompera pas.
boteha_2 a écrit :
Je vais poser la question sur le forum Google pour les webmasters que je trouve d'ailleurs très peu accueillant.
Si tu n'as pas la même réponse, c'est qu'ils se trompent !
Amicalement,
Modifié par parsimonhi (20 Mar 2025 - 13:44)