head / in sitemap depois de passar do apache para o nginx

1

Eu tenho um sitemap chamado link . Começa com este código:

<?php
echo '<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="http://www.weddingpages.nl/sitemap.xsl"?><urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/09/sitemap.xsd"        xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
';

Depois de passar do Apache para o Nginx, as ferramentas do Google para webmasters começaram a recusar meus sitemaps dizendo que se parecem com páginas HTML.

Ao olhar para a saída, vi algo estranho.

com o Nginx:

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="http://www.weddingpages.nl/sitemap.xsl"?><head/><urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/09/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

Com o Apache:

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="http://www.weddingpages.nl/sitemap.xsl"?><urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/09/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

Por alguma razão eu não entendo Nginx lança

<head/>

logo antes do urlset.

Alguém sabe o motivo disso? Receio que isso é o que causa o problema. Mas mesmo depois de procurar, não encontrei a resposta.

    
por Dimitri Visser 05.07.2014 / 01:19

1 resposta

1

Eu não sei se é certo responder a minha própria pergunta. Mas depois de alguns dias eu finalmente encontrei a solução.

Quero agradecer a Alexey Ten por mencionar a palavra "módulo". Parece que o módulo de velocidade da página é o problema. Desativar o speedpeed nos arquivos de configuração do nginx resolveu o problema. Eu li pagespeed apenas altera o html, então provavelmente o pagepeed achou que a saída xml era html. Eu ativei o Pagespeed novamente e adicionei:

header('Content-Type: text/xml');

nos arquivos .php. Agora tudo funciona bem. O estranho é que eu também usei o Apache com o módulo pagespeed e nunca tive esse problema. Provavelmente, há uma diferença no comportamento de velocidade da página com o Nginx comparado ao Apache.

    
por 05.07.2014 / 12:27

Tags