عبارت “No route was found matching the URL and request method” به فارسی: “هیچ مسیری مطابق با آدرس URL و روش درخواست یافت نشد.”
این خطا معمولاً زمانی رخ میدهد که سیستم وردپرس یا سرور قادر به شناسایی مسیری (Route) که با آدرس URL درخواستشده و روش درخواست (مانند GET، POST، PUT، DELETE) مطابقت داشته باشد، نیست. این وضعیت ممکن است به دلایل زیر اتفاق بیفتد:
رفع خطای No route was found matching the URL and request method.
- آدرس URL اشتباه:
- آدرس واردشده نادرست است یا مسیر تعریفشده در کد وجود ندارد.
- روش درخواست (Request Method):
- روش استفادهشده در درخواست با مسیری که تعریف شده است، مطابقت ندارد.
- عدم تعریف مسیر:
- مسیری که باید پاسخگو باشد، در کد یا تنظیمات مربوطه تعریف نشده است.
- مشکلات تنظیمات API یا پیوندهای یکتا:
- تنظیمات نادرست یا کش قدیمی ممکن است باعث شود که یا مسیرها بهدرستی کار نکنند.
این خطا معمولاً با بررسی مسیرهای API، تنظیمات پیوندهای یکتا یا بررسی افزونههای ناسازگار قابل حل است.
1. بررسی تنظیمات پیوندهای یکتا (Permalinks)
- به پیشخوان وردپرس بروید.
- از منوی “تنظیمات”، گزینه “پیوندهای یکتا” را انتخاب کنید.
- بدون تغییر ساختار، روی دکمه “ذخیره تغییرات” کلیک کنید.
این کار میتواند ساختار پیوندها را تازهسازی کرده و مشکلات مربوط به مسیرهای API را حل کند.
2. غیرفعال کردن افزونهها (بهویژه المنتور پرو=مشکل اصلی و احتمالی)
- المنتور پرو:
- اگر از افزونه المنتور پرو استفاده میکنید، آن را موقتاً غیرفعال کنید و عملکرد سایت را بررسی کنید.
- در بسیاری از موارد، این خطا به دلیل ناسازگاری یا مشکل در نسخه خاصی از المنتور پرو رخ میدهد.
- اگر مشکل با غیرفعال کردن المنتور حل شد:
- افزونه را بهروز کنید.
- بررسی کنید که با سایر افزونهها تداخلی نداشته باشد.
- سایر افزونهها:
- تمامی افزونهها را غیرفعال کرده و قالب پیشفرض وردپرس را فعال کنید.
- یکییکی افزونهها را فعال کنید تا منبع خطا را پیدا کنید.
3. پاکسازی کش (Cache)
- اگر از افزونههای کش مانند WP Rocket یا LiteSpeed Cache استفاده میکنید، کش را پاک کنید.
- کش CDN (مانند Cloudflare) را نیز پاک کنید.
4. بررسی تنظیمات امنیتی
- برخی افزونههای امنیتی مانند Wordfence یا iThemes Security ممکن است دسترسی به API REST را محدود کنند.
- تنظیمات افزونهها را بررسی کنید و مطمئن شوید که API REST غیرفعال یا مسدود نشده باشد.
- در افزونههای امنیتی، استثناهایی برای مسیرهای API اضافه کنید.
5. بررسی ماژولهای سرور
- mod_rewrite:
- این ماژول در سرور برای پیوندهای یکتا و API REST ضروری است.
- با ارائهدهنده هاست تماس بگیرید و از فعال بودن این ماژول اطمینان حاصل کنید.
- PHP Version:
- اطمینان حاصل کنید که نسخه PHP شما با نسخه وردپرس و افزونهها سازگار است.
6. بررسی مسیرها و روشهای درخواست (Routes & Methods)
- مطمئن شوید که مسیر (Route) و روش درخواست (مانند GET یا POST) بهدرستی تعریف شدهاند.
- مسیرها را در مستندات افزونه یا API REST بررسی کنید.
7. سایر نکات مهم برای سایتهای ایرانی
- مشکل المنتور پرو:
- این خطا اخیراً در بسیاری از سایتهای ایرانی که از المنتور پرو استفاده میکنند مشاهده شده است.
- بهروزرسانی افزونه و هماهنگی نسخه المنتور و المنتور پرو با وردپرس میتواند مشکل را حل کند.
- هاست داخلی:
- اگر از هاستهای ایرانی استفاده میکنید، ممکن است برخی محدودیتها در سرور اعمال شده باشد.
- با پشتیبانی هاست تماس بگیرید و از صحت تنظیمات مربوط به API REST اطمینان حاصل کنید.
افزودن کد به فایل functions.php برای رفع مشکل REST API
اگر مشکل “No route was found matching the URL and request method” به دلیل غیرفعال بودن یا محدودیتهای اعمالشده روی REST API رخ دهد، میتوانید با افزودن کدهای زیر به فایل functions.php قالب فعال خود، مشکل را برطرف کنید.
1. اطمینان از فعال بودن REST API
این کدها باعث میشوند REST API در سایت شما فعال شود و عملکرد آن از محدودیتهای احتمالی آزاد شود:
|
1 2 |
add_filter('rest_enabled', '__return_true'); add_filter('rest_jsonp_enabled', '__return_true'); |
2. رفع محدودیتهای دسترسی
اگر افزونههای امنیتی یا تنظیمات خاص سرور دسترسی به REST API را محدود کرده باشند، با استفاده از این کد میتوانید دسترسی را باز کنید:
|
1 2 3 |
add_action('rest_api_init', function () { remove_filter('rest_authentication_errors', 'wp_rest_authentication_handler'); }); |
این کد هرگونه فیلتر احراز هویتی را که ممکن است به اشتباه روی درخواستهای REST API اعمال شده باشد، حذف میکند.
3. رفع مشکل ناشی از JSON یا HEADERS
گاهی مشکل به دلیل ناسازگاری در ارسال درخواستها یا پاسخهای رخ میدهد. با افزودن این کد میتوانید اطمینان حاصل کنید که سرور پاسخهای درست ارسال میکند:
|
1 2 3 |
header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS"); header("Access-Control-Allow-Headers: Content-Type, Authorization"); |
نحوه افزودن کدها
- وارد پیشخوان وردپرس شوید.
- از منوی نمایش، گزینه ویرایشگر قالب را انتخاب کنید.
- فایل functions.php قالب خود را باز کنید.
- کدهای بالا را به انتهای فایل اضافه کنید.
- تغییرات را ذخیره کنید.
نکتههای مهم
- پشتیبانگیری: قبل از ویرایش فایل functions.php، از سایت خود نسخه پشتیبان تهیه کنید.
- تست عملکرد: پس از افزودن کدها، عملکرد سایت و REST API را تست کنید.
- اگر مشکل رفع نشد، ممکن است نیاز باشد افزونههای امنیتی یا تنظیمات سرور را بررسی کنید.
این تغییرات به رفع خطا کمک میکنند، اما اگر مشکل ادامه داشت، میتوانید تنظیمات سرور یا افزونههای فعال را بازبینی کنید.
جمعبندی
با دنبال کردن این مراحل، معمولاً خطای “No route was found matching the URL and request method” رفع میشود. اگر پس از انجام این راهحلها مشکل همچنان پابرجا بود:
- گزارشهای خطای سرور (Error Logs) را بررسی کنید.
- با متخصصان وب آنجل یا پشتیبانی افزونه مربوطه مشورت کنید.
خدمات پشتیبانی و سئوی حرفهای سایت با وب آنجل
با سپردن خدمات پشتیبانی سایت خود به تیم متخصصی همانند وب آنجل، با سابقه موفق بیش از یک دهه در دنیای دیـجیتال مارکتینگ، خیالتان از بهترین بودن سایت کسب و کار خود راحت باشد.











