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

پس با در نظر گرفتن همین نکات، اگر شما هم متوجه شدید که روی سایت وردپرس تان، افرادی که وارد صفحات ۴۰۴ میشوند به صورت خودکار به صفحهٔ اصلی هدایت میشوند، طبق این آموزش این ارجاع خودکار را میتوانید غیرفعال کنید. البته ممکن است روش رفت این مورد، بسته به طریقهٔ ایجاد آن متفاوت باشد که در ادامه هر کدام از روشهای توضیح داده شدند.
۱. تنظیمات پیوند یکتا
اگر شما برای نوشتههای عادی خطای ۴۰۴ دریافت میکنید و سپس بازدید کنندگان به صفحهٔ اصلی سایت منتقل میشوند، دلیل این مشکل میتواند از تنظیمات پیوند یکتای سایت باشد. اول از همه به مسیر تنظیمات » پیوندهای یکتا از پیشخوان وردپرس وارد شوید. بررسی کنید که آیا پیوند یکتای سایت به درستی تنظیم شده است یا خیر. مواقعی هم که قصد تغییر پیوند یکتا را دارید، حتماً در مورد عواقب آن اطلاعات کامل را کسب کنید که در این باره آموزشهای زیادی روی سایت منتشر شده است.
گاهی از اوقات هم ذخیرهٔ تنظیمات فعلی پیوند یکتای سایت میتواند مشکل را حل کند. پس این کار را انجام دهید.
۲. غیرفعال کردن افزونهها
اگر از افزونهای استفاده میکنید که کار ارجاع خودکار صفحات ۴۰۴ به صفحهٔ اصلی را انجام میدهد، حتماً آن را غیرفعال کنید. ممکن است این قابلیت به عنوان یک گزینهٔ تنظیماتی روی دیگر افزونهها وجود داشته باشد که باید با اطلاع کامل آن را غیر فعال کنید.
۳. بررسی سند .htaccess
به طور کلی اگر خط زیر در این سند وجود داشت، میتواند دلیلی بر وجود این ارجاع باشد. آن را حذف نمایید.
ErrorDocument 404 /index.php
علاوه بر آن اگر در جایی از این سند عبارتی مثل R=301
را دیدید، میتواند دلیلی بر وجود ارجاع درون این سند باشد. به مثال زیر دقت کنید:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule . / [L,R=301]
۴. سند ۴۰۴.php
سند ۴۰۴.php که یکی از اسناد پوستهٔ وردپرس است، مسئول مدیریت و ساخت صفحات خطای ۴۰۴ سایت است. این سند باید به درستی تنظیم شده باشد و اگر محتوایی مثل کدهای زیر را داشت، نشان از این است که یک چنین ارجاعی وجود دارد که باید آن را حذف و کاری کنید که به جای ارجاع خودکار، مثلاً جعبهٔ جستجو را به بازدید کننده نمایش دهد.
<?php header ("HTTP/1.1 301 Moved Permanently"); header("Location: ".get_bloginfo('url')); exit(); ?>
۵. تغییر قالب
وردپرس دارای متدی است با عنوان is_404() که کارش این است که اگر خطای ۴۰۴ ای رخ داد، آن را پیدا کند و احتمالاً یک کار خاصی هم روی آن انجام داد. این متد باید توسط قالب وردپرس مورد استفاده قرار گیرد. اگر ارجاع خودکار برای شما وجود داشت، با تغییر قالب به یک قالب دیگر، از این موضوع مطمئن شوید که آیا مشکل از قالب است یا خیر.
۶. ایراد NOBLOGREDIRECT
در سند wp-config.php ممکن است ثابتی با عنوان NOBLOGREDIRECT تعریف شده باشد که هر زمان بازدید کنندهای به یک زیر دامنهای از سایت یا شبکهٔ وردپرس وارد شود که وجود نداشته باشد، به صورت خودکار به دامنهٔ اصلی ارجاع داده شود. از آن بدتر این است که حتی اگر به صفحهای وارد شود که جزئی از یک سایت یا وبلاگ در شبکه نباشد، باز هم این ارجاع وجود دارد، به جای اینکه خطای ۴۰۴ را نمایش دهد و بازدید کننده متوجه شود که یک چنین صفحهای وجود ندارد!
برای رفع این مشکل باید کد زیر را در سند functions.php پوستهٔ خود قرار دهید که این قابلیت را غیرفعال میکند:
<?php remove_action( 'template_redirect', 'maybe_redirect_404'); ?>
جمع بندی
با وجود احتمالات زیادی که بابت وجود ارجاع ۳۰۱ یا ۳۰۲ به صفحهٔ اصلی سایت، از صفحاتی که وجود ندارند میتواند عمل کنند، خود این ارجاعها چندان مناسب نیستند و حداقلش این است که بازدید کننده با مشکل مواجه میشود. بهتر است با استفاده از توضیحاتی که در بالا داده شد، این امکان را غیرفعال کنید و سعی کنید که خود خطای ۴۰۴ نمود پیدا کند. که هم برای بازدید کننده مفید است و هم برای خزندهٔ موتور جستجو.