SPIP Forums

[ar] [ca] [cpf] [de] [en] [es] [fa] [fr] [it]

Ce forum d’entraide est recommandé pour les utilisateurs et utilisatrices occasionnels de SPIP (Système de publication pour l’Internet). Avant de poser une question, faites une recherche sur ce site, consultez les liens utiles. Si vous ne trouvez pas de réponse, postez votre message dans la rubrique appropriée, avec un titre explicite.

Sujets : 22395 Sujets résolus :  40 %

115 visiteurs en ce moment


Accueil > Forums de discussion >  Création de squelettes > Problème de sitemap avec SPIP 3

Problème de sitemap avec SPIP 3 Résolu

par thierry - 8 août 2012 14:15 - Réponse(s) : 12

Bonjour,
j’ai récemment fait la migration de mon site de V2 en V3,
et je viens de m’apercevoir que le sitemap n’est plus digéré correctement par Google.
Dans Google webmaster, j’ai une erreur super claire dans la vérification du sitemap "Format de fichier non pris en charge".
J’ai testé mon sitemap V3 avec un autre site qui est toujours en V2, et là google, n’a pas de problème. D’autre part si je vais sur http://www.xml-sitemaps.com/validate-xml-sitemap.html pour tester mes 2 sitemaps, j’ai ok pour les 2.
Je n’ai pas vu de caractères spéciaux dans le fichier xml de la V3 susceptibles de poser problème.
J’ai également comparé les headers des 2 versions sur http://www.infowebmaster.fr/outils/entete-http.php, et là encore, les headers semblent identiques entre les 2 sites.
Bref, je sèche.

Quelqu’un aurait un problème similaire ? (avec la solution, c’est mieux)
ou un site permettant de vérifier le sitemap, façon Google mais avec un message plus clair que celui de Google ?


  • Précision : Aucun problème sur Bing.


  • < #2 > Problème de sitemap avec SPIP 3 ˆ
    par aleks - 8 août 2012 15:25

    Salut,

    Très bizarre... A tout hasard, le fichier est-il encodé en UTF-8 sans bom ? Le spip et la base sont en utf8 ?


  • Oui, le fichier est encodé en UTF-8 sans BOM,
    Le header contient ça

    HTTP/1.1 200 OK
    Date: Wed, 08 Aug 2012 14:09:56 GMT
    Server: Apache/2.2.14 (Unix)
    X-Powered-By: PHP/5.2.5
    Vary: Cookie,Accept-Encoding
    Composed-By: SPIP @ www.spip.net
    X-Spip-Cache: 0
    Cache-Control: no-cache, must-revalidate
    Pragma: no-cache
    Last-Modified: Wed, 08 Aug 2012 14:09:57 GMT
    Content-Type: text/xml; charset=utf-8
    Content-Language: fr
    Transfer-Encoding: chunked

    le fichier squelette est

    [(#REM)

            Exemple tres simple de sitemap.xml accessible via URL_SITE_SPIP/sitemap.xml
            (copier htaccess.txt en .htaccess pour en beneficier)

            Ce sitemap affiche la liste des rubriques, breves et articles, en se limitant a 1000 rubriques, 1000 breves et 2000 articles pour des raisons
            de performances.

            Duree de reindexation et priorite ne sont pas precisees,
            sauf pour l'accueil.

            Mais si date_modif est recente (1 jour) on l'indique, pour que ce
            soit reindexe en priorite

            (On pose un cache a zero pour echapper au test _IS_BOT)

    ]#CACHE{0}
    #HTTP_HEADER{Content-Type: text/xml; charset=utf-8}
    <?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
            <loc>#URL_SITE_SPIP/</loc>
       <priority>1.0</priority>
    </url>
    <BOUCLE_r(RUBRIQUES){!par date} {id_rubrique !IN 1,13,32,43,44,45} {0,1000}>[
    <url><loc>(#URL_RUBRIQUE|url_absolue)</loc><priority>0.8</priority></url>]</BOUCLE_r>
    [(#SET{recent,[(#VAL{Y-m-d H:i:s}|date{#VAL{"-1 day"}|strtotime})]})]
    <BOUCLE_a(ARTICLES){!par date_modif}{!par date}{id_rubrique !IN= 43,44} {0,2000}>[
    <url><loc>(#URL_ARTICLE|url_absolue)</loc>[(#DATE_MODIF**|>{#GET{recent}}
    |?{[<lastmod>(#DATE_MODIF**|date_iso)</lastmod>]})]<priority>0.6</priority></url>]</BOUCLE_a>
    <BOUCLE_b(ARTICLES){!par date}{id_rubrique = 44}{age<60} {0,2000}>[
    <url><loc>(#URL_ARTICLE|url_absolue)</loc>[(#DATE_MODIF**|>{#GET{recent}}
    |?{[<lastmod>(#DATE_MODIF**|date_iso)</lastmod>]})]<priority>0.4</priority></url>]</BOUCLE_b>
    </urlset>

    Le début du fichier XML, c’est

    <?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
            <loc>http://www.mydomain.com/</loc>
       <priority>1.0</priority>
    </url>

    <url><loc>http://www.mydomain.com/-rubrique1-.html</loc><priority>0.8</priority></url>
    ...
    <url><loc>http://www.mydomain.com/articlex.html</loc><priority>0.6</priority></url>
    ...
    <url><loc>http://www.mydomain.com/articley.html</loc><priority>0.4</priority></url>
    ...
    </urlset>

    Le site est en ISO-8859-1 mais au niveau du XML, ça ne change rien avec les URL propres2.
    Je n’ai rien changé au fichier sitemap.xml.html entre la V2 et la V3, mais alors qu’il fonctionne sans problème en V2, ça merdouille en V3, et seulement sur le Google webmaster.

    La seule différence au niveau du header, c’est le no-store en plus avec la V2
    Cache-Control : no-store, no-cache, must-revalidate

    Je vais bidouiller /ecrire/public/balises.php pour voir si ça pourrait venir de là.

    Edit : Bon, ça ne change rien avec le no-store.


  • < #4 > Problème de sitemap avec SPIP 3 ˆ
    par thierry - 2 octobre 2012 12:07

    Un petit up !
    Alors ? personne n’a eu le problème ? ou aurait une solution ?


  • < #5 > Problème de sitemap avec SPIP 3 ˆ
    par thierry - 2 octobre 2012 17:04

    ça y est, j’ai trouvé !
    Dans l’écran de sécurité, en ligne 259, il y a
    (function_exists('sys_getloadavg') AND $load = array_shift(sys_getloadavg()))
    or, sur mon hébergement (Amen WebPro+), la fonction sys_getloadavg() ne retourne pas un tableau, du coup, j’ai un warning sur le array_shift().
    Il suffit de mettre @array_shift(...) pour que googlebot ne s’en prenne plus plein la gueule.
    Mais bien sûr puisque la fonction ne fonctionne pas, autant définir _ECRAN_SECURITE_LOAD à 0.

    Edit :
    - Ce problème est actif sur toutes les pages, pas seulement sur la page sitemap, pour voir si vous avez le problème, le plus simple est d’installer le plugin User Agent Switcher pour Firefox et de se connecter à son site en tant que googlebot.
    - Sur la version 1.1.3 de l’écran de sécurité, c’est en ligne 283.


  • < #6 > Problème de sitemap avec SPIP 3 ˆ
    par troon - 18 février 2013 15:00

    merci, je venais de rencontrer le même problème et la modification sur l’écran de sécurité m’a été d’un grand service !

    l’écran de sécurité se trouve dans /config/ecran_securite.php pour ceux qui ne le sauraient pas.


  • m’enfin… elle retourne quoi du coup votre fonction sys_getloadavg() ?

    http://php.net/manual/fr/function.sys-getloadavg.php indique que ça retourne normalement TOUJOURS un tableau


  • < #8 > Problème de sitemap avec SPIP 3 ˆ
    par thierry - 23 février 2013 11:56

    false !
    Le problème a été corrigé (voir ici), mais la version 3.0.6 tarde à sortir.


  • Bonjour,

    Après certaines recherches j’arrive ici et je constate que le problème existe encore sur mon hébergement mutualisé OVH :

    <b>Strict Standards</b>:  Only variables should be passed by reference in <b>/homez.113/jefaisvo/www/config/ecran_securite.php</b> on line <b>283</b><br />
    ^

    Avez-vous des nouvelles sur la version 3.0.6 ?

    Ce message est fort bref car je pense qu’il faut que je remonte le problème mais je ne sais où :s


  • Bonjour,
    ce n’est malheureusement pas le même problème, en l’occurrence dans ton cas, tu es en mode E_STRICT et l’usage fait par le array_shift est incorrect (la fonction array_shift est censée modifier le contenu de la variable passée en paramètre, mais là, c’est pas possible puisque c’est une fonction).
    Ce que tu peux faire c’est :
    - Dans ton fichier php.ini, tu changes le error_reporting en error_reporting = E_ALL & E_NOTICE
    - Si tu es en mutualisé, je ne crois pas que tu as accès à ce fichier chez OVH, tu peux configurer ton fichier .htaccess comme c’est expliqué .
    - Si le problème c’est que tu es en version > 5.4.0 de php (ils ont changé les niveaux d’erreurs), tu peux aussi modifier le fichier spip.php en ajoutant au début avant le # Ou est l’espace privé ? une ligne qui contient

    1. error_reporting(E_ALL & ~(E_STRICT|E_NOTICE));

    - ou si t’en as rien à foutre du test de charge machine, tu peux aussi definir _ECRAN_SECURITE_LOAD à 0 (ecran_securite.php ligne 275).


  • Sinon, la nouvelle version contient les 2 correctifs (révision 19198 - problème php 5.4 - et 19945 - sys_getloadavg() ne renvoie pas un tableau -)
    Mais bon, je ne sais pas quand la nouvelle version va sortir, tu peux malgré tout la récupérer ici, ça corrige les problèmes et en même temps tu n’auras rien à faire de spécial lors de la prochaine mise à jour.


  • Bonjour Thierry et désolé pour ma lenteur à répondre (merci d’ailleurs pour ta rapidité).

    Tu as visé juste en parlant d’OVH, je n’étais pas au courant de l’activation du E_STRICT en 5.4.0. Le problème vicieux ici est que sitemap.xml accédé via un user-agent normal renvoie du contenu.
    Du coup malgré le fait que j’ai aussi E_STRICT en local, ça m’est passé complètement sous le nez.

    J’ai mis _ECRAN_SECURITE_LOAD à 0, car me passer des erreurs/warnings/notices me semblait "plus dangereux".

    Mais après réflexion, j’ai fait la mise à jour vers ecran_securité 1.1.5 ;)

    Encore merci pour ta réponse éclairée !


  •  


Répondre à la question

« Problème de sitemap avec SPIP 3 »

Mots-clés

Vous pouvez étiqueter cette page de forum avec les mots-clés qui vous semblent les plus appropriés ; ils permettront aux prochains visiteurs du site de mieux se repérer :


Installation, mise à jour

Utilisation de l’espace privé

Administration, gestion, configuration du site

Créer ses squelettes

Qui êtes-vous ?