Не открывается sitemap.xml. Правила ReWrite для nginx

Не открывается sitemap.xml. Правила ReWrite для nginx

6727
2
ПОДЕЛИТЬСЯ

Если в качестве фронтэнда для сайта на WordPress вы используете nginx, и sitemap.xml у вас создается плагином динамически генерирующим сайтмапу, то Вам необходимо обратить внимание на некоторые особенности при конфигурировании nginx, чтобы не получить ответ 404 вместо ожидаемого sitemap.xml.

Первое, проверяем что Вы не заставляете nginx брать xml файлы напрямую, минуя бэкэнд.
Если в строке location у Вас присутствует xml, то nginx обратившись по пути /var/web/moisait.ru/www/sitemap.xml и не обнаружив его там, отдаст клиенту 404 ошибку.

location ~* \.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ 
{
root /var/web/moisait.ru/www/;
}

Проверяем, чтобы правильно передавались аргументы url

location / {
	try_files $uri $uri/ /index.php?$args;
}

Однако бывают случаи, когда на Вашем сайте присутствуют xml файлы помимо сайтмапы, которые вы хотите кэшировать, либо отдавать напрямую  nginx-ом, тогда лучше всего прописать несколько правил rewrite rule для nginx, чтобы ваш sitemap.xml выводился корректно.

Правила rewrite для плагина Yoast’s WordPress-SEO

location ~ ([^/]*)sitemap(.*)\.x(m|s)l$ {
	rewrite ^/sitemap\.xml$ /sitemap_index.xml permanent;
	rewrite ^/sitemap\.xsl$ /index.php?xsl=1 last;
	rewrite ^/sitemap_index\.xml$ /index.php?sitemap=1 last;
	rewrite ^/([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
}

Правила rewrite для плагина XML Sitemap & Google News feeds

location ~ ([^/]*)sitemap(.*)\.x(m|s)l$ {	
	rewrite ^/sitemap\.xml$ /?feed=sitemap last;
	rewrite ^/sitemap-home\.xml$ /?feed=sitemap-home last;
	rewrite ^/sitemap-posttype-post\.xml$ /?feed=sitemap-posttype-post last;
	rewrite ^/sitemap-posttype-page\.xml$ /?feed=sitemap-posttype-page last;
	rewrite ^/sitemap-taxonomy-category\.xml$ /?feed=sitemap-taxonomy-category last;
}
comments powered by HyperComments
Francisko Rodriguez
2016-04-01 03:41:07
В какой файл это добавлять?
Tkacheff.ru
Tkacheff.ru
2016-04-13 23:08:45
Если Вы не знаете куда это добавлять, то мой ответ Вам вряд ли поможет. Добавлять в nginx.conf либо в конфиг сайта в зависимости от того как настроен Ваш nginx