إزالة رمز"m=1" من رابط مدونتك بلوجر Blogger و حل مشكلة إعادة التوجيه

إزالة معلمة "m=1" من روابط مدونتك على Blogger

في هذا الشرح سنتعرف على كيفية إزالة معلمة "m=1" من نهاية عناوين URL مدونتك على Blogger. هذه الطريقة تعتمد على استخدام Cloudflare Workers كوسيط لتعديل الاستجابة قبل وصولها إلى المتصفح. تحدد خدمة Cloudflare Workers نوع الجهاز (هاتف محمول أو جهاز لوحي أو سطح مكتب) باستخدام وكيل المستخدم "User-Agent". ثم يقوم باسترداد عنوان URL الأصلي مع معلمة "m" بقيمة محددة (0 للسطح المكتب و 1 للأجهزة الأخرى) بعدها يتم إرساله إلى المتصفح. وبذلك، لن يعاد توجيه المستخدمين إلى عنوان URL مع معلمة "m" عند زيارة الموقع على أجهزة محمولة.

تستدعي هذه العملية استخدام اسم نطاق مخصص مرتبط ب Cloudflare Workers. لا يمكن تطبيق هذه الطريقة على نطاق فرعي .blogspot.com

المتطلبات

يجب أن يدار DNS الخاص بالنطاق بواسطة Cloudflare. إذا كان موقعك غير مرتبط بكلودفلاير، يمكنك متابعة هذا الشرح 👈 تعرف على كيفية ربط موقعك مع Cloudflare بشكل صحيح. 👉

👈 حدود Cloudflare Workers المجانية. تتمثل في 100 ألف طلب في اليوم إذا تجاوزت هذه الحدود، فلن يتم تطبيق الWorker وسيعمل الموقع على الشكل الإفتراضي.

إنشاء Cloudflare Workers

👈 1.سجّل الدخول إلى حساب Cloudflare الخاص بك.

الدخول إلى حساب Cloudflare

👈 2.قم بالنزول في القائمة ثم انتقل إلى قسم Workers & Pages وانقر على إنشاء"Create".

قسم Workers & Pages

👈 3.ثم انقر على "Create Worker" .

إنشاء Worker

👈 4.قم بتسمية العامل باسم "remove-m-worker".

remove-m-worker

👈 5.ثم قم بالنزول الى اسفل وانقر على نشر "Deploy".

نشر

👈 6.الآن انقر على تحرير الكود "Edit code" واستبدل الكود الحالي بالكود التالي:

تحرير الكود


/**
 * Environment interface
 * 
 * @typedef Env
 * @property {string} my_var
 */

/**
 * A helper function to get the device type from user agent
 * 
 * @param {string | null} userAgent
 * 
 * @returns {"mobile" | "tablet" | "desktop"}
 */
const getDeviceType = (userAgent) => {
  const mobileRegexp = /(?:phone|windows\s+phone|ipod|blackberry|(?:android|bb\d+|meego|silk|googlebot) .+? mobile|palm|windows\s+ce|opera\ mini|avantgo|mobilesafari|docomo|KAIOS)/i;
  const tabletRegexp = /(?:ipad|playbook|(?:android|bb\d+|meego|silk)(?! .+? mobile))/i;

  if (typeof userAgent === "string") {
    if (mobileRegexp.test(userAgent)) {
      return "mobile";
    }

    if (tabletRegexp.test(userAgent)) {
      return "tablet";
    }
  }

  // Everything else not matched above will be considered as desktop
  return "desktop";
}

/**
 * An object with workers handlers
 * 
 * @type {ExportedHandler}
 */
const worker = {
  async fetch(request, env, context) {
    // Get the device type from user-agent header
    const deviceType = getDeviceType(request.headers.get("User-Agent"));

    const proxyUrl = new URL(request.url);
    // Set the search param 'm' according to the device type, i.e. '0' for desktop, '1' for others
    proxyUrl.searchParams.set("m", String(deviceType === "desktop" ? 0 : 1));

    const proxyResponse = await fetch(proxyUrl, request);

    const response = new Response(proxyResponse.body, proxyResponse);

    // TODO: You can modify the response here :)

    return response;
  }
}

// Export handlers
export default worker; 

👈 7.بعد لصق الكود في المكان المخصص قم بعمل نشر

Cloudflare Workers

👈 8.ثم حفظ ونشر"Save and deploy".

حفظ ونشر

إنشاء المسارات Workers Routes

👈 1.انتقل إلى قسم المواقع في لوحة تحكم Cloudflare وحدد نطاقك.

لوحة تحكم Cloudflare

👈 2.انتقل إلى قسم Workers Routes ثم انقر على إضافة مسار "Add route".

Workers Routes

👈 3.أدخل الحقول كما هو موضح في الجدول التالي:

Cloudflare Route
https://www.yourdomain.com/* Route
remove-m-worker Worker
Fail open (proceed) Request limit failure mode

بعد التأكد من أن الحقول معبأة بشكل صحيح قم بالنقر على حفظ.

Cloudflare Route

بعد الحفظ سيتم تطبيق الWorker مباشرة على نطاقك الخاص. يمكنك اجراء فحص للنطاق من خلال موقع  Redirect-Checker للتأكد من أنه لم يعد يحتوي على معلمة "m=1" و اعادة التوجيه 302 

بهذه الطريقة، ستتمكن من التخلص من معلمة "m=1" من روابط مدونتك على Blogger بكل سهولة. إذا كنت تواجه صعوبات، فلا تتردد في ترك تعليق و سأحول مساعدتك بإذن الله.

2 تعليقات

  1. لدي سؤال / لدي مدونه مربوطه بنطاق مدفوع / هل ييجب علي ان اشتري نطاق من ذلك الموقع ام ليس هناك باس اذا ربط النطاق من نيم شيب في الموقع الاخر ؟

    ردحذف
    الردود
    1. لا تحتاج إلى شراء نطاق أخر يمكنك الربط بين نطاقك الحالي و كلودفلاير كما هو مشروح في درس "كيفية ربط مدونك مع كلودفلاير"
      https://www.rmaroc.com/2024/08/cloudflare-2024.html

      حذف
أحدث أقدم