ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как исправить ошибку 404 карты сайта в WordPress SEO Yoast

Как исправить ошибку 404 карты сайта в WordPress SEO Yoast

Будучи загружен более 1 миллиона раз, плагин WordPress SEO плагин на сегодняшний день является лучшим и наиболее полным SEO плагином для WordPress. В то время как он не дал нам никаких проблем в прошлом, для некоторых пользователей это была боль. Недавно один из наших клиентов столкнулся с вопросом о получении ошибки 404 для своих карт сайта порожденных плагином WordPress SEO от Yoast. После нескольких попыток, нам удалось выяснить решение. В этой статье мы покажем вам, как исправить ошибку 404 в карте сайта плагина WordPress SEO от Yoast.

Первое, что вы должны сделать, это открыть файл .htaccess (вы можете сделать это с помощью плагина WordPress SEO > Возможность редактирования файлов) и просто добавьте следующий код там:

# WordPress SEO - XML Sitemap исправление
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^sitemap_index.xml$ /index.php?sitemap=1 [L]
RewriteRule ^([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 [L]
</IfModule>
# конец WordPress SEO - XML Sitemap исправление

Для большинства людей это исправило проблему. Кто-то сообщил, что в то время как этот код фиксируется проблему, страница все еще посылала заголовок ответа 404, что означало, что инструмент Google Вебмастера не мог найти её. Ну в случае нашего клиента, указанное решение не решило проблему.Как исправить ошибку 404 карты сайта в WordPress SEO Yoast

В то время как это не является предпочтительным, у нас не было выбора, кроме как изменить файлы ядра плагина, чтобы исправить эту проблему. Отредактировали class-sitemaps.php, расположенный в “/wp-content/plugins/wordpress-seo/inc/class-sitemaps.php”.

Вы должны смотреть на код функции init() и сделать этот раздел выглядеть следующим образом:

01	/**
02	     * Initialize sitemaps. Add sitemap rewrite rules and query var
03	     */
04	    function init() {
05	        global $wp_rewrite;
06	        $GLOBALS['wp']->add_query_var( 'sitemap' );
07	        $GLOBALS['wp']->add_query_var( 'sitemap_n' );
08	        add_rewrite_rule( 'sitemap_index.xml$', 'index.php?sitemap=1', 'top' );
09	        add_rewrite_rule( '([^/]+?)-sitemap([0-9]+)?.xml$','index.php?sitemap=$matches[1]&sitemap_n=$matches[2]', 'top' );
10	        $wp_rewrite->flush_rules();
11	    }

В основном то, что мы делаем, это добавляем глобальной $ wp_rewrite и добавление flush_rules после кода. При добавлении этого в плагин, это, кажется, должно исправить 404 на веб-сайте нашего клиента.Мы понятия не имеем, почему Yoast не делает это по умолчанию, Но мне кажется, что довольно много пользователей, имеющих эту проблему 404 сайта.

Обновление: Как некоторые из наших пользователей сообщили , что после применения исправления выше, они по- прежнему снимают флажок в карты сайта плагина SEO от Yoast и сохранить свои настройки. После этой повторной проверки вариант карты сайта ошибка для них была исправлена.

Если у Вас есть эта проблема, мы надеемся, что это исправление помогло вам.

Exit mobile version