جديد

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

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

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

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

المتطلبات

يجب أن يُدار 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".

حفظ ونشر

إنشاء مسارات

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

لوحة تحكم Cloudflare

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

Workers Routes

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

Cloudflare Route
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 بكل سهولة. إذا كنت تواجه صعوبات، فلا تتردد في ترك تعليق و سأحول مساعدتك بإذن الله.

author-img
RMaroc

تعليقات

      ليست هناك تعليقات
      إرسال تعليق

        نموذج الاتصال

        websitemonafizamazonandroidfindersafariapplebasecampbehancebloggerchromedeliciousdeviantartdiscorddribbbledropboxellomessengerfacebookfirefoxflickrgithubgoogle-drivegoogle-playIEinstagramjoomlakafilkhamsatkicklanyrdlastfmlinkedinlinuxedgeonedrivewindowsmostaqlnpmoperapatreonpaypalpinterestquoraredditrenrenrsssina-weiboskypesnapchatsoundcloudstack-overflowsteamstumbleupontelegramthreadstiktoktradenttrellotumblrtwitchtwittervimeovinevkwhatsappwordpressXxingyahooyoutube