سلام
چون پیوند های یکتا وردپرس فرضی هستن و در واقع فایل فیزیکی برای صفحات ساخته شده فرضی اون وجود نداره چنین افزونه هایی چون احتمالاً میان از کد های مشابه این در فایل htaccess. شما استفاده میکنن هم صفحات اخطار 404 که واقعاً وجود ندارن و هم صفحات فرضی پیوند های یکتا وردپرس رو باهم به صفحه اصلی شما ریدایرکت میکنن:
کد:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . / [L,R=301]
در کد بالا خط دوم شرط گذاشته شده که اگه فایل درخواست شده وجود نداشته باشه سراغ ریدایرکت که در خط سوم آمده بره.
پس متوجه شدیم که به دلیل فرضی بودن خود صفحات ساخته شده وردپرس که فایل فیزیکی ندارن این کد اونا رو با صفحاتی که واقعاً وجود ندارن یکسان می دونه.
چاره در اینه که شما در ریدایرکت کردن صفحات 404 هم دست به دامن سیستم صفحات فرضی وردپرس برید که برای این کار وردپرس از قبل فکر همه جاشو کرده و در هر قالب خودش امکان داشتن یه فایل 404.php رو داده مختص همین خطای 404 گذاشته.
این فایل 404.php موجود در هر قالب علاوه بر امکان ایجاد استایل و HTML اختصاصی با توجه به php بودن فرمتش امکان کلاً ریدایرکت کردن صفحه به جای نمایش صفحه ای خاص هم داره که با کد زیر انجام میشه:
نکته: اگر در قالب شما این فایل وجود نداره براحتی می تونید یه فایل با نام 404 و فرمت php در کنار سایر فایل های قالب خودتون (در پوشه اصلی قالب کنار functions.php و index.php و...) بسازید.
کد:
<?php
$homepage = 'http://' . $_SERVER['HTTP_HOST'];
header("Location: $homepage", true, 301);
exit();
?>
در کد بالا خط دوم در متغیری به نام homepage آدرس دامنه سایت شما توسط خود PHP و متغیر سراسری SERVER_$ شناسایی میشه اما می تونید اینو دستی هم خودتون وارد کنید تنها تفاوتش در اینه که وقتی اینطوری خود PHP آدرس دامنه سایت رو شناسایی کنه همین کد رو بدون هیچ تغییری برای سایت های مختلفی هم می تونید استفاده کنید.
سپس در خط سوم ریدایرکت رو اونم به صورت 301 انجام میده.
در آخر با دستور exit مانع از اجرای هیچ کد دیگه ای توسط فایل 404.php میشه.
با توجه به وجود دستور exit شما نیاز ندارید کد های فعلی فایل 404.php قالب فعلیتون رو حذف کنید می تونید کد بالا رو در اولین خط این فایل قبل از همه کد های موجود بذارید اینطوری هر وقت دیگه دوست نداشتید خطا های 404 ریدایرکت بشن می تونید فقط این پاراگراف اول فایل رو پاک کنید و برمیگرده مثل حالت قبل.
همچنین می تونید در کد بالا متغیر homepage رو با توجه به نیاز خودتون همراه با www کنید یا حتی http رو به https (اگه سایتتون از https استفاده میکنه) تغییر بدید.