в карте сайта после перехода с apache на nginx - localhosts.ru
У меня есть карта сайта с именем 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 на Nginx инструменты для веб-мастеров Google начали отказываться от моих карт сайта, говоря мне, что они выглядят как 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 решило проблему. Я читал, что Pagespeed изменяет только html, поэтому, вероятно, Pagespeed подумал, что этот xml-вывод был html. Я снова включил Pagespeed и добавил:
header('Content-Type: text/xml');
в файлах .php. Теперь все работает нормально. Странно то, что я также использовал Apache с модулем Pagespeed и никогда не сталкивался с этой проблемой. Вероятно, есть разница в поведении скорости страницы с Nginx по сравнению с Apache.