У меня есть карта сайта под названием http://www.domain.com/sitemap1.php. Это запускается с этого кода:
<?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">
';
После перемещения с Apache на инструменты веб-мастера Google Nginx, запущенные для отказа от моих карт сайта, говоря мне, что они похожи на страницы HTML.
При рассмотрении вывода я видел что-то странное.
С 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">
С 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">
По некоторым причинам я не понимаю, что Nginx добавляет
<head/>
прямо прежде urlset.
Кто-либо знает причину этого? Я боюсь, что это - то, что вызывает проблему. Но даже после поиска я не нашел ответ.
Я не знаю, правильно ли отвечать на мой собственный вопрос. Но через несколько дней я наконец-то нашел решение.
Хочу поблагодарить Алексея Тена за упоминание слова "модуль". Похоже, что проблема в модуле pagepeed. Отключение страницы-скорости в конфигурационных файлах nginx решило эту проблему. Я прочитал только изменения в pagepeed html, так что, наверное, pagepeed думал, что это xml вывод был html. Я опять включил страницу-скорость и добавил:
header('Content-Type: text/xml');
в .php файлы. Теперь все работает нормально. Странная вещь заключается в том, что я также использовал Apache с модулем pagespeed и никогда не имел этой проблемы. Наверное, есть разница в поведении со страничной скоростью в Nginx по сравнению с Apache.
.