[Résolu] Erreur à l'exécution de sitemap.php (5.7)
Bonjour à tous,
je suis nouveau sur ce forum après quelques jours de tests et d'utilisation de ce super petit CMS qu'est PluXml 5.7. 😊
J'ai dû rater quelque chose car personne ne parle d'une erreur sur le fichier sitemap.php…
Lorsque j'essaie d'accéder à /monsite/sitemap.php j'obtiens l'erreur suivante (j'ai une 404 lorsque j'essaie d'accéder directement à sitemap.xml mais je résoudrai cela plus tard) :
This page contains the following errors:
error on line 3 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.
Je n'ai pas de lien à vous fournir car je suis sur un site de test sans nom de domaine attribué mais je pense que vous pourrez aisément reproduire cela (j'ai testé l'erreur aussi bien en local que sur o2switch, avec Chrome ou Firefox).
Après quelques recherches, cette erreur viendrait d'une mauvaise génération du fichier sitemap.xml qui contient deux lignes vides avant l'instruction de traitement XML <?xml version="1.0" encoding="utf-8" ?>
, expression qui devrait se trouver en première ligne sans aucun espace avant.
Je n'ai pas réussi à détecter dans le code de sitemap.php ce qui pouvait générer ces 2 sauts de lignes en début du fichier .xml mais peut-être que quelques-uns parmi vous pourront lever le lièvre…
Merci par avance de m'avoir lu jusqu'ici et surtout de bien vouloir jeter un œil car c'est un réel problème de référencement lorsqu'un site ne dispose pas de sitemap lisible sans erreur par Google et consorts. 😅
Frédéric
Réponses
De mémoire il me semble que sitemap.xml corresponde en fait à sitemap.php pour PluXml, normal que tu aies un 404.
Ligne 3 col 6 correspond à :
Une piste à explorer : ton site est il installé à la racine de ton serveur ? http://monsite.fr/ ou dans un sous répertoire http://monsite.fr/monsite/ ?
Sinon faudra attendre que nos codeurs passent dans le coin. :)
Bonsoir @kowalsky, merci pour ta réponse. :)
Oui, mon site est bien à la racine du serveur.
Plusieurs réponses concordent pour expliquer que l'erreur vient chaque fois de l'insertion d'un ou plusieurs espaces au début du fichier sitemap.xml généré, comme par exemple ici :
ou là :
Je pense qu'il va falloir attendre les codeurs. :)
Alors, à défaut d'en connaître la cause, j'ai trouvé un pis-aller permettant de supprimer l'erreur.
J'ai utilisé le code d'une solution donnée ici pour un problème similaire sur WordPress :
En rajoutant tout simplement le code se trouvant dans le fichier fourni sur cette page (spacefix.php) en début du fichier sitemap.php fourni avec PluXml, l'erreur disparaît.
Le code de sitemap.php devient donc :
Mais ce serait quand même bien de trouver la vraie source du problème plutôt que de lui appliquer un pansement. 😅
@Frémo Yep,
Le sitemap de mon site free qui roule avec PluXml 5.7 officiel est 100% valide chez yandex et autres
AMHA il est possible qu'il y est un (ou plusieurs) plugins qui inscrive ses fameuses lignes/espaces vides...
Il y a combien de plugins activés et Ds quel ordre?
Pour trouver d’où cela peut venir :
Ensuite, réactive les plugins 1 à 1 (ds l'ordre du mémo, si besoin) et regarde la source du sitemap.php à chaque fois que tu en a réactivé un :)
Lorsque l'erreur réapparaît, note le plugin et continue** jusqu’à ce que tous les plugins soit réactivés (*même liste que le mémo et même erreur(s) ds le sitemap)
** Il se peut que plusieurs plugins soient en cause si l'erreur est différente (1plug == 1 espace, 1 autre == 2 lignes) Qui sait. (si même erreur, ce plugin a besoin d'une MAJ ou d'une retouche)
En espérant qu'il y ai que quelques greffons actifs ;)
Mais si l'erreur est tjrs là lorsque aucun plug est actif, c'est autre chose qui génère cela , config du serveur, modif de pluxml perso (oubliée), ...
Et penser a enlever le pansement de sitemap.php avant des essais ;)
Tiens nous au jus
Notre temps est la seule monnaie vraie ;)
Site, Dépôt, framagit, MyShop, Factux
#mozinor président
De même, pas de soucis de mon côté pour les sitemap. Hébergé en mutu.
FR/EN MP - Mail - unkorneglosk.fr - Twitter - Je suis modérateur, je dois donc modérater. Ou modérationner. Ou je sais plus. Mais je le fais. En ce moment j'ai des problèmes d'accès à internet je peux mettre du temps à répondre.
Hello @Sudwebdesign & @Kube17,
le fautif est jpbInstalleurPlugins - Version 1.4 (28/12/2018)… à noter dans les tablettes.
Une fois désactivé, l'erreur disparaît.
Désolé pour le dérangement, j'aurais dû commencer par cela comme je le fais pourtant systématiquement sur WordPress en cas d'erreur…
Comme quoi le changement d'environnement peut être bien plus perturbant qu'on peut le croire ! ;)
Il n'y a pas de dérangement :)
Tu fais juste remonter un bug, qui sera à corriger au niveau du plugin ;)
@jack31 (enfin il me semble)
J'ai vu où sont les erreurs du plugin jpbInstalleurPlugins ;)
Il y a au début du fichier de classe deux lignes vide avant la 1ere balise
<?php
Et Il y a aussi des lignes vide après la dernière balise de fermeture de php
?>
C'est elles qui ajoutes les espaces et lignes non voulues (comme dirait Stéphane : un effet de bord)
Pour y remédié, il suffit de supprimer les lignes vide avant la 1ere balise <?php afin que "<?php" soient les premiers caractères du fichier
Et il est préconisé d'enlever la dernière balise d'un fichier php (le dernier ?> du fichier) pour d'éviter ce genre de cas ;)
Notre temps est la seule monnaie vraie ;)
Site, Dépôt, framagit, MyShop, Factux
#mozinor président
Super, testé et adopté ! :)
Merci @Sudwebdesign d'avoir pris le temps de regarder et de corriger !
@Frémo
Génial, ajoute donc un [résolu] au titre du premier message 😉
Notre temps est la seule monnaie vraie ;)
Site, Dépôt, framagit, MyShop, Factux
#mozinor président