شما در وردپرس برتر هستید!
خطای 404
آموزش وردپرسمقالات آموزشی

حل خطای ۴۰۴ در افزونه Yoast SEO وردپرس

40بازدید

با بیش از یک میلیون بار دانلود در سراسر دنیا، SEO by Yoast بهترین و کامل ترین افزونه سئو سازی در وردپرس می باشد. با اینکه در این افزونه هیچگونه مشکلی در گذشته وجود نداشته است، اما به تازگی بعضی از کاربران هنگام ساخت نقشه سایت توسط Yoast خطای ۴۰۴ را پشت سر هم دریافت می کنند. بعد از امتحان چند راه حل مختلف، بلاخره روش حل این مشکل را پیدا کردیم. در این مقاله، به شما آموزش خواهیم داد که چگونه خطای ۴۰۴ هنگام ایجاد نقشه سایت را در Yoast حل نمایید.

لازم به ذکر است که باید به این نکته توجه داشته باشید که معمولا خطای این افزونه به دلیل افزونه ها یا قالب های کد شده پیش می آید.

اولین کاری که باید انجام دهید این است که باید فایل htaccess. سایت خود را ویرایش کنید. (برای دسترسی به این فایل می توانید از طریق افزونه SEO> تنظیمات فایل ها اقدام کنید) و کد های زیر را به سادگی به این بخش اضافه کنید:

# WordPress SEO – XML Sitemap Rewrite Fix
<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>
# END WordPress SEO – XML Sitemap Rewrite Fix

برای اکثر کاربران انجام عملیات بالا مشکل را حل می کند. بعضی از کاربران اما به ما گزارش داده اند با اینکه این کدها مشکل را حل کرده است، اما صفحه نقشه سایت خطای ۴۰۴ را ارسال می کند و این یعنی ابزار وب مستر گوگل نتوانسته است نقشه سایت را پیدا کند. در این حالت است که کد های بالا قابلیت حل این مشکل را ندارند.

در این شرایط راه دیگری جز ویرایش کد های هسته افزونه وجود ندارد. ما باید فایل class-sitemaps.php را که در آدرس زیر قرار دارد ویرایش کنیم:

wp-content/plugins/wordpress-seo/inc/class-sitemaps.php/

شما باید به دنبال بخشی به نام ()function init بگردید و کدهای این بخش را با کد های زیر تعویض نمایید:

/**
* Initialize sitemaps. Add sitemap rewrite rules and query var
*/
function init() {
global $wp_rewrite;
$GLOBALS[‘wp’]->add_query_var( ‘sitemap’ );
$GLOBALS[‘wp’]->add_query_var( ‘sitemap_n’ );
add_rewrite_rule( ‘sitemap_index.xml$’, ‘index.php?sitemap=1’, ‘top’ );
add_rewrite_rule( ‘([^/]+?)-sitemap([0-9]+)?.xml$’, ‘index.php?sitemap=$matches[1]&sitemap_n=$matches[2]’, ‘top’ );
$wp_rewrite->flush_rules();
}

کاری که ما در واقع داریم انجام می دهیم این است که کد ;global $wp_rewriteرا قبل از همه کدها قرار می دهیم و کد flush_rules را بعد از کدها درج می کنیم. بعد از اضافه کردن این کد ها به افزونه، به نظر می رسد که مشکل خطای ۴۰۴ حل شده باشد.

کسانی که مشکلشان با استفاده از روش های بالا حل شده است باید توجه داشته باشند که تیک ساخت نقشه سایت را یک بار در افزونه Yoast’s SEO حذف کرده و تنظیمات را ذخیره کنند. پس از دوباره تیک زدن این قسمت، مشکل کاملا حل می شود.

ارسال پاسخ