Как исправить ошибку 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 и сохранить свои настройки. После этой повторной проверки вариант карты сайта ошибка для них была исправлена.

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



2016-09-23T00:41:55
Лучшие учебники по Wodpress