No route was found matching the URL and request method

رفع ارور No route was found matching the URL and request method

خطای "No route was found matching the URL and request method" در المنتور به دلایل مختلفی مانند تحریم، غیرفعال بودن و ...
Picture of مهدی اثنا عشری
مهدی اثنا عشری

چرا خطای “No route was found matching the URL and request method” رخ می‌دهد؟

زمانی که افزونه المنتور با سرور اصلی خود نمی‌تواند ارتباط برقرار کند، خطای No route was found matching the URL and request method” ظاهر می‌شود. این خطا می‌تواند برای کاربران به‌شدت آزاردهنده باشد، به‌ویژه زمانی که در میانه طراحی یک صفحه مهم هستید. دلیل اصلی این مشکل این است که المنتور قادر به انجام درخواست‌های لازم برای اجرای برخی از عملیات‌ها نیست. این موضوع ممکن است به دلایل فنی مختلف یا حتی عوامل خارجی رخ دهد.

No route was found matching the URL and request method | زمرد

در ادامه به برخی از دلایل متداول و عوامل پنهان که ممکن است باعث این خطا شوند، پرداخته‌ایم:

  1. تحریم و محدودیت‌های اینترنتی: ممکن است اتصال به سرورهای المنتور به دلیل فیلترینگ یا محدودیت‌های دسترسی مسدود شده باشد.
  2. غیرفعال بودن REST API: این ویژگی باید فعال باشد تا المنتور به درستی کار کند.
  3. تداخل افزونه‌ها: برخی از افزونه‌ها ممکن است با المنتور ناسازگاری ایجاد کنند.
  4. نسخه ناسازگار المنتور یا وردپرس: اطمینان حاصل کنید که از آخرین نسخه‌های افزونه و وردپرس استفاده می‌کنید.
  5. مشکلات مربوط به پیوندهای یکتا: گاهی تنظیمات نامناسب در پیوندهای یکتا می‌تواند باعث بروز این خطا شود.
  6. محدودیت‌های هاستینگ: تنظیمات سرور یا محدودیت‌های اعمال‌شده توسط میزبان وب ممکن است مشکل‌ساز باشند.
  7. فایروال یا تنظیمات امنیتی سرور: این تنظیمات می‌توانند ارتباط المنتور با سرور را مسدود کنند.
  8. تداخل قالب: برخی از قالب‌ها ممکن است با المنتور ناسازگاری داشته باشند.
  9. مشکلات مربوط به SSL: گواهی SSL نادرست یا تنظیمات اشتباه ممکن است مشکل ایجاد کند.
  10. خطا در فایل .htaccess: اگر این فایل به درستی تنظیم نشده باشد، ممکن است مشکلاتی ایجاد کند.
  11. نسخه ناسازگار PHP: المنتور برای اجرا به نسخه خاصی از PHP نیاز دارد؛ از سازگاری نسخه‌ها اطمینان حاصل کنید.

 

چگونه خطا No route was found matching the URL and request method را رفع کنیم؟

  1. وارد پنل مدیریت وردپرس خود شوید.
  2. از منوی کناری، مسیر نمایش > ویرایشگر پرونده پوسته را انتخاب کنید.
  3. در بخش فایل‌های قالب، فایل functions.php را پیدا کرده و باز کنید.
  4. کد زیر را در انتهای فایل قرار دهید:

No route was found matching the URL and request method | زمرد

// جلوگیری از اتصال المنتور به my.elementor.com
define('ELEMENTOR_CONNECT_URL', 'my.elementor.com');

default_filters();
prevent_http_requests();
remove_connect_scripts();
remove_admin_notices();

/**
* تعریف فیلترهای پیش‌فرض المنتور
*/
function default_filters() {
add_filter('elementor/connect/additional-connect-info', '__return_empty_array');
add_filter('elementor/connect/connect-url', '__return_empty_string');
add_filter('elementor/connect/remote-info-data', '__return_empty_array');

add_filter('elementor/connect/apps/get_client_data', function ($client_data) {
if (is_wp_error($client_data)) {
return [
'client_id' => '',
'auth_secret' => '',
'redirect_uri' => '',
'callback' => '',
'admin_notice' => '',
];
}
return $client_data;
}, 10, 1);

add_filter('elementor/api/get_templates/body_args', '__return_empty_array');
add_filter('elementor/api/get_info_data', '__return_empty_array');
}

/**
* جلوگیری کامل از تلاش‌های اتصال به سرورهای المنتور
*/
function prevent_http_requests() {
add_filter('pre_http_request', function ($pre, $parsed_args, $url) {
if (strpos($url, ELEMENTOR_CONNECT_URL) !== false) {
return [
'body' => '',
'response' => ['code' => 200],
'headers' => [],
'cookies' => [],
];
}
return $pre;
}, 10, 3);
}

/**
* حذف اسکریپت‌ها و منوهای مربوط به کتابخانه اتصال المنتور
*/
function remove_connect_scripts() {
add_action('elementor/init', function () {
if (class_exists('\Elementor\Core\Common\Modules\Connect\Module')) {
remove_action(
'elementor/editor/before_enqueue_scripts',
[\Elementor\Core\Common\Modules\Connect\Module::class, 'enqueue_connect_scripts']
);
}
});

add_action('admin_menu', function () {
remove_submenu_page('elementor', 'elementor-connect');
}, 99);
}

/**
* غیرفعال کردن اعلان‌های ادمین مرتبط با اتصال المنتور
*/
function remove_admin_notices() {
add_action('init', function () {
if (class_exists('\Elementor\Core\Common\Modules\Connect\Module')) {
remove_action('admin_notices', [
\Elementor\Core\Common\Modules\Connect\Module::class,
'admin_notice'
]);
}
});
}

نکات مهم:

  • از فایل‌های سایت خود نسخه پشتیبان تهیه کنید تا در صورت بروز مشکل، بتوانید به حالت قبل بازگردید.
  • در صورتی که مشکل همچنان باقی ماند، کامنت بگذارید تا مشکلتان را برطرف کنیم.

با استفاده از این راهکار می‌توانید به‌سرعت مشکل را برطرف کرده و به طراحی سایت خود ادامه دهید. اگر تجربه مشابهی داشته‌اید یا راه‌حل دیگری برای این مشکل می‌شناسید، در بخش نظرات با ما به اشتراک بگذارید.

آنچه در این مطلب میخوانید !

4 پاسخ

  1. خیلی ممنون واسه من کار کرد با این حال آیا بازم اضافه کردن این کد به قالب ضروریه؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

در تاریکی،
درخشش را بیابید

با ما در تماس باشید

تلفن تماس

09991898010 - 09991798010

بی صبرانه منتظر دیدار شما در زمرد هستیم !

برای ثبت نام در دوره فرم زیر را تکمیل فرمایید

نیاز به راهنمایی دارید ؟

کافیه فرم زیر رو تکمیل کنید تا در اسرع وقت با شما تماس بگیریم