[Attention] Contao 2.9 et l'accélérateur GéoCache OVH

Comment installer Contao
Avatar de l’utilisateur
F2lt
Membre
Messages : 164
Inscription : 26 Mai 2011 09:24
Localisation : L'Isle sur Sorgue - Vaucluse (84)

[Attention] Contao 2.9 et l'accélérateur GéoCache OVH

Messagepar F2lt » 06 Mai 2015 10:45

Bonjour,

Lors de la migration d'un site Contao 2.9 sur une offre d'hébergement mutualisé Performance d'OVH, j'ai rencontré deux problèmes.

Le contexte

Yann a développé un site en "iankoOol responsive" sur la base d'un Contao 2.9 et Catalog pour la société SPPC Paris Bleu. Paris Bleu (fondée en 1989) crée, fabrique et commercialise à travers le monde, des produits de qualité dans le respect de la parfumerie française. L’audience du site est internationale et touche : les Etats-Unis, la Russie, l’Allemagne, le Brésil, l’Iran, la Tunisie, la Pologne, le Maroc, la Corée du Sud, la Grande-Bretagne, la Côte d’Ivoire, l’Ukraine, l’Inde, l’Arabie Saoudite…

Ayant aussi travaillé sur le site, il m'a confié la migration sur le nouvel hébergement OVH qui bénéficie des avantages du CDN d'OVH avec le systeme accélérateur GéoCache ; CDN parfaitement adapté à l'audience internationale du site.

Premier problème > ERROR 520: Website not authorized on CDN

Après avoir effectué une migration de test et vérifier le bon fonctionnement du site sur le domaine (non utilisé) de l’hébergement, j'ai procéder à la migration définitive et au changement de destination domaine externe. Tout se déroule normalement, le site est bien en ligne sur le nouvel hébergement et l'on navigue sans problème.

Je vérifie aussi toujours ce que "Google" voit en utilisant la fonction des outils pour webmasters (Exploration > Explorer comme Google). Et là mauvaise surprise, l'URL est momentanément inaccessible ; j'essaie un wget en SSH depuis un hébergement 1and1 (localisation physique Allemagne) et j'obtiens :

Code : Tout sélectionner

wget http://www.parisbleu.com
--  http://www.parisbleu.com/
Resolving www.parisbleu.com... 213.186.33.151
Connecting to www.parisbleu.com|213.186.33.151|:80... connected.
HTTP request sent, awaiting response... 520 Website not authorized on CDN
ERROR 520: Website not authorized on CDN.

Après quelques recherches, je comprends en lisant ce post que c'est le domaine externe parisbleu.com qui n'a pas été pris en compte au niveau du CDN. Le site est parfaitement visible depuis la France, mais pas depuis les pays où OVH a mis en place son CDN ! Premier réflexe : désactiver le géochache, mais le passage en mode development n'a pas d'effet.

OVH a finit par "intégrer" le domaine dans le CDN et je n'ai plus d'erreur avec mon wget :

Code : Tout sélectionner

wget http://parisbleu.com
http://parisbleu.com/
Resolving parisbleu.com... 213.186.33.151
Connecting to parisbleu.com|213.186.33.151|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.parisbleu.com/ [following]
http://www.parisbleu.com/
Resolving www.parisbleu.com... 213.186.33.151
Reusing existing connection to parisbleu.com:80.
HTTP request sent, awaiting response... 302 Found
Location: http://www.parisbleu.com/en/ [following]
http://www.parisbleu.com/en/
Connecting to www.parisbleu.com|213.186.33.151|:80... connected.
HTTP request sent, awaiting response... 200 OK

Sauvé, eh bien non pas encore !

Deuxième problème > Ajout du nom de domaine comme dossier dans les URL

Confiant, je revérifie l'exploration Google et j'obtiens une erreur 404 après la redirection "langue":

Code : Tout sélectionner

http://www.parisbleu.com/
Type de robot Googlebot : Ordinateur
Redirection ...
Cette URL redirige vers :
http://www.parisbleu.com/www.parisbleu.com/en/

Je trouve un outil très utile http://www.webpagetest.org/ .Webpagetest permet de tester les performances d'un site web depuis de nombreux points du globe ; le résultat est le même depuis les USA (301 puis 404) et si on donne une URL du site (sans redirection) on obtient une page sans images, ni CSS...

Pensant que le géocache OVH ne gère pas correctement l'utilisation de la balise <base>, je créer une page statique avec une image référencée par <base> : l'affichage est correct. Donc le problème ne vient pas du géocache d'OVH mais de Contao !

En examinant le contenu de la page généré sur une demande d'URL valide avec webpagetest depuis les USA, je m'aperçois que je retrouve aussi le nom de domaine comme dossier dans la <base> (<base href="http://www.parisbleu.com/www.parisbleu.com/" />).
C'est la méthode url() de la classe Environment qui génère cette URL. En examinant le code ci-dessous, on s'aperçoit que Contao ajoute $xhost à URL si httpXForwardedHost est renseigné :

Code : Tout sélectionner

   /**
    * Return the current URL without path or query string
    * @return string
    */
   protected function url()
   {
      $xhost = $this->httpXForwardedHost;
      $protocol = $this->ssl ? 'https://' : 'http://';

      return $protocol . (($xhost != '') ? $xhost . '/' : '') . $this->httpHost;
   }

Je trouve une longue discussion sur le sujet sur le gitHub de Contao : URL generation fails when contao host is proxied due to problem in Environment.php #4615
Le problème vient du fait que certains POP du CDN (pas celui de Francfort) "renseignent" la variable $_SERVER['HTTP_X_FORWARDED_HOST'] et que dans ce cas Contao l'ajoute à l'URL sans raison de mon point de vue.
Je modifie le code pour supprimer ce doublon et tout rentre dans l'ordre. :)

Code : Tout sélectionner

   /**
    * Return the current URL without path or query string
    * @return string
    */
   protected function url()
   {
      // $xhost = $this->httpXForwardedHost;
      $protocol = $this->ssl ? 'https://' : 'http://';

      return $protocol . (($xhost != '') ? $xhost . '/' : '') . $this->httpHost;
   }

Il ne me reste plus qu'à faire un peu de "ménage" (suppression du dossier "domaine) au niveau de l'indexation de Google qui a entretemps cherché à lire plus de 400 URL fausses en suivant les liens faux des pages existantes (base fausse + lien correct = URL fausse).
Je soutiens Mira Europe qui éduque et remet gratuitement des chiens guides d'aveugles aux enfants aveugles : http://www.miraeurope.org/

Avatar de l’utilisateur
tom-over
Membre
Messages : 829
Inscription : 23 Mai 2008 10:43
Localisation : Rouen

Re: [Attention] Contao 2.9 et l'accélérateur GéoCache OVH

Messagepar tom-over » 06 Mai 2015 11:24

Quelle aventure ! Tu as du t'arracher les cheveux avec cette migration plutôt chaotique !
Merci pour le site webpagetest.org ça peut être utile pour les sites multilingues

Chez moi je me suis aperçu que parfois dans mes erreur de log, j'avais une dossier langue en doublon dans l'url.
Par exemple :
www.monsite.com/fr/fr/ma-page.html


Revenir vers « Installation de Contao »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités