Ajouter un sitemap.xml

Par Alex-trem, il y a 4 ans


Bonjour, j'ai créé le sitemap d'un site en PHP natif et le problème c'est que j'ai une erreur 404 lorsque l'url est "/sitemap.xml" alors que ça fonctionne très bien avec "/sitemap"

J'envoi la réponse comme ceci :

return new \GuzzleHttp\Psr7\Response(200, ['Content-Type' => 'text/xml'], $this->renderer->render('@sitemap/index', compact('urls')));

13 réponses

popotte, il y a 4 ans

php.ini, l'extension xml est activée? :/

Soundboy39, il y a 4 ans

Bonjour,

L'extension .xml n'est pas gérée par ton système de réecriture d'URL, voir le Router ou le fichier htaccess.

Alex-trem, il y a 4 ans

J'ai essayé de modifier mon htaccess pour accepter les xml mais ça ne fait rien

Alex-trem, il y a 4 ans

Oui elle l'est.
Je pense que le problème vient soit du router soit de la reponse, il y en a un des deux qui fait une mauvaise interpretation quand la route finit par ".xml"

popotte, il y a 4 ans

Mmmh, et ça dit quoi dans les logs?

avpn, il y a 4 ans

Ce n'est pas très grave, tu peux envoyer ton sitemap à google sans l'extension .xml, ça revient au même

Alex-trem, il y a 4 ans

C'est bizarre, en local "/sitemap" fonctionne et pas "/sitemap.xml" et en prod aucun des deux fonctionne.
Dans les log j'ai erreur 500 c'est tout.

avpn, il y a 4 ans

Tu as activé chez ton hébergeur l'extension xml ?

Alex-trem, il y a 4 ans

Je viens de regarder je trouve rien à ce sujet chez ovh

avpn, il y a 4 ans

C'est bien encodé en utf-8 ?

Alex-trem, il y a 4 ans

Oui, dans la vue : <?xml version="1.0" encoding="UTF-8"?>
et dans le controller je viens de modifier pour l'ajouter mais ça change rien :
return new \GuzzleHttp\Psr7\Response(200, ['Content-Type' => 'text/xml; charset=utf-8'], $this->renderer->render('@sitemap/index', compact('urls')));

Soundboy39, il y a 4 ans

tu parle de quel logs ? ceux d'apache ou ceux de ton application ?

est-ce que tu a analysé ce qui se passe en amont du render de XML ?

avpn, il y a 4 ans

Mais le fichier en lui même il est encodé en UTF-8 aussi ?