Dotclear

Ticket #1874 (closed defect: wontfix)

Opened 12 years ago

Last modified 10 years ago

Mauvaise gestion des URL par le 'Lang' URLHandler

Reported by: prospere Owned by: team
Priority: high Milestone:
Component: module:core Version: 2.6
Severity: normal Keywords:
Cc:

Description

Les URL gérées par l'URLHandler Lang ne sont pas vérifiées.

Il est possible de passer n'importe quel paramètre, exemple :

 http://fr.dotclear.org/blog/quelque-chose-qui-nexiste-pas/et-qoui/qui-nexiste-vraiment-pas/page/2

Il suffit de publier ce lien pour que Google référence une seconde fois toutes les pages du site : page/1, page/2, ....

Du coup Google considère que le site contient du Duplicate Content et produit des warnings dans la console Webmaster tools.

Change History

comment:1 Changed 12 years ago by nikrou

comment:2 Changed 12 years ago by prospere

Voici une proposition de patch, il suffit de forcer le regexp pour l'URLHandler Home afin de restreindre la structure des URL.

protected static function getPageNumber(&$args,$only_root=false)
   {
                if ($only_root){
                        $regexp = '#(^)page/([0-9]+)$#';
                }else {
                        $regexp = '#(^|/)page/([0-9]+)$#';
                }

                if (preg_match($regexp,$args,$m)) {
                        $n = (integer) $m[2];
                        if ($n > 0) {
                                $args = preg_replace($regexp,'',$args);
                                return $n;
                        }
                }
                return false;
 }

comment:3 Changed 12 years ago by nikrou

A mon avis on peut faire encore plus simple. Le problème ne se pose que pour la méthode home. Il suffit d'enlever le test sur la valeur de $n pour renvoyer un 404. On renvoie 404 dès que $args est non vide.

comment:4 Changed 11 years ago by franck

Euh, la home est paginée, si on vire le test sur $n, ça va poser problème, non ?

comment:5 Changed 11 years ago by prospere

La home est paginée, il faudrait s'assurer que si $n est non vide que l'argument passé est bien /page/x et non pas: quelquechose/page/x

comment:6 Changed 11 years ago by franck

Du coup on limite volontairement les schémas d'URL de la home, tout ça pour corriger une erreur PEBKAC, j'suis pas convaincu…

comment:7 Changed 10 years ago by franck

  • Status changed from new to closed
  • Resolution set to wontfix
  • Milestone A definir deleted
Note: See TracTickets for help on using tickets.

Sites map