أدلة

النطاقات المخصصة لـ WordPress SaaS: كيف تعمل عملية ربط نطاقات المستأجرين

فريق GrabWP
· 6 min read · مراجعة فريق GrabWP

إذا كنت تقوم بتطوير منصة وتود دعم ميزة custom domains wordpress saas، عاجلاً أم آجلاً سيسأل العميل نفس السؤال: “هل يمكنني استخدام نطاقي الخاص؟” الطريقة التي تجيب بها على ذلك تشكل منتجك بالكامل. يغطي هذا الدليل كيف يعمل ربط النطاقات للمستأجرين عملياً مع إضافة GrabWP Tenancy plugin: خيارات التوجيه، وكيف يضيف العملاء النطاقات بأنفسهم، وما يحدث فعلياً على الخادم.

لماذا تعتبر النطاقات مهمة لـ WaaS

في أعمال Website-as-a-Service (WaaS)، يعتبر النطاق هو الواجهة الأمامية للعميل. فهو يؤثر على الثقة، والعلامة التجارية، وتحسين محركات البحث. العميل الذي يرى موقعه على yourbrand.com/site/acme-widgets يتعامل معه كنسخة تجريبية. أما نفس العميل عندما يستخدم acmewidgets.com فإنه يتعامل معه كعمله الخاص.

تعتبر النطاقات مهمة لثلاثة أسباب رئيسية:

  • العلامة التجارية (Branding). يريد العملاء اسمهم في شريط عنوان URL، وليس اسمك.
  • تحسين محركات البحث (SEO). تقوم محركات البحث بفهرسة المحتوى بناءً على اسم المضيف (hostname). يساعد استخدام wordpress multi tenant custom domain كل tenant على بناء موثوقيته الخاصة.
  • الشعور بالملكية (Perceived ownership). النطاق المخصص يجعلهم يشعرون بأن المنتج ملكهم، مما يقلل من معدلات الإلغاء ويدعم تسعيراً أعلى.

السر يكمن في تقديم نطاقات مخصصة دون تحويل كل عملية تسجيل إلى تذكرة دعم فني يدوية لـ DNS. وهذا يعني البدء ببساطة والترقية عند الطلب.

خيارات التوجيه: النطاق المخصص مقابل المسار

يدعم GrabWP Tenancy نموذجين للتوجيه، ويمكنك المزج بينهما عبر قاعدة المستأجرين (tenant) الخاصة بك.

يقوم التوجيه القائم على النطاق (Domain-based routing) بعمل map domain to wordpress tenant ليصبح النطاق المخصص كاملاً مرتبطاً بـ tenant واحد. عندما يصل طلب إلى acmewidgets.com، يقوم GrabWP بتوجيهه إلى الـ tenant الخاص بـ Acme ويحمل بيانات ذلك الـ tenant. هذا ما يريده عادةً العملاء في الباقات المدفوعة.

يضع التوجيه القائم على المسار (Path-based routing) كل tenant تحت مسار على نطاقك المشترك، مثل yoursite.com/site/acme-widgets. لا يلزم إجراء تغييرات في DNS، مما يجعله مثالياً لعمليات الإعداد (onboarding)، والفترات التجريبية، والباقات المجانية. يمكن تخصيص بادئة المسار (path prefix) من خلال الثابت GRABWP_TENANCY_PATH_PREFIX، والذي يكون افتراضياً site. قم بتعيينه إلى شيء مثل app أو clients ليتناسب مع منتجك.

// wp-config.php
define( 'GRABWP_TENANCY_PATH_PREFIX', 'clients' );
// Tenants now live at yoursite.com/clients/acme-widgets

يتدفق كلا النموذجين عبر نفس طبقة تحليل عناوين URL المركزية للمستأجرين، لذلك لا يتعين عليك اختيار واحد والالتزام به للأبد. يمكن أن يعمل الـ tenant على مسار اليوم وعلى نطاق مخصص غداً.

كيف يضيف العملاء نطاقاً من خلال لوحة التحكم الخاصة بهم

إدارة النطاقات المخصصة في لوحة تحكم نطاقات GrabWP WaaS

أنت لا تريد أن تكون الوسيط لكل تغيير في النطاق. تمنح طبقة WaaS من GrabWP المستأجرين لوحة تحكم للخدمة الذاتية من خلال الرمز القصير [grabwp_waas_dashboard]. أضف هذا الرمز القصير في صفحة على موقع التحكم الخاص بك، وسيرى كل عميل مسجل الدخول لوحة التحكم الخاصة به.

تتضمن لوحة التحكم علامة تبويب النطاقات (Domains tab) حيث يدير العملاء النطاقات المرتبطة بالـ tenant الخاص بهم. من هناك يمكن للعميل تسجيل النطاق المخصص الذي يريد توجيهه إلى موقعه. عند تفعيل النطاق، يمكن لطبقة WaaS إرسال بريد إلكتروني لإشعار التفعيل حتى يعلم العميل أن الربط أصبح نشطاً.

يبدو سير العمل المواجه للعميل هكذا:

  1. يفتح العميل لوحة التحكم الخاصة به وينقر على علامة تبويب النطاقات.
  2. يدخل العميل النطاق الذي يمتلكه، على سبيل المثال acmewidgets.com.
  3. يقوم العميل بتوجيه DNS الخاص بذلك النطاق إلى خادمك (سجل A أو CNAME، وفقاً لإعداداتك).
  4. بمجرد أن يتم توجيه DNS وتصبح الشهادة جاهزة، يتم تحميل الـ tenant على النطاق المخصص.

بصفتك المشغل، لا يزال بإمكانك إدارة كل شيء مركزياً من خلال واجهة الإدارة أو ملف ربط الـ tenant، وهو أمر مفيد للتغييرات المجمعة أو التعامل مع النطاقات نيابة عن العميل.

ماذا يحدث على الخادم

عندما يتم ربط النطاق، يقوم GrabWP بالعمل من جهة WordPress لجعل الطلبات تتجه إلى الـ tenant الصحيح. هناك شيئان يستحقان الفهم.

التوجيه (Routing). يقوم نظام تحليل عناوين URL المركزي بفحص اسم المضيف (hostname) أو المسار الوارد ويحمل الـ tenant المطابق. تمر كل من الطلبات القائمة على النطاق والطلبات القائمة على المسار عبر هذا المحلل الواحد، لذلك يظل السلوك متسقاً بغض النظر عن كيفية الوصول إلى الـ tenant.

مزامنة الروابط الرمزية (Symlink sync). في إصدار Pro، يحافظ GrabWP على مزامنة الروابط الرمزية للنطاقات تلقائياً كلما تم إنشاء tenant أو تحديثه أو حذفه. يعمل هذا عبر واجهة الإدارة، و REST API، و WP-CLI، وبالتالي فإن الـ tenant الذي يتم توفيره بواسطة أتمتة التسجيل الخاصة بك يحصل على نفس المعاملة التي يحصل عليها الذي تنشئه يدوياً. هناك أيضاً إجراء في إعدادات Pro لمزامنة الروابط الرمزية للنطاقات عبر جميع المستأجرين مرة واحدة، وهو أمر مفيد بعد عملية نقل (migration) أو استيراد مجمع (bulk import).

حدود هامة يجب توضيحها: GrabWP لا يُصدر شهادات TLS ولا يدير DNS. إن توجيه نطاق العميل إلى خادمك وتوفير شهادة HTTPS هو عمل قياسي لخوادم الويب، ويتم التعامل معه بواسطة الاستضافة الخاصة بك، أو الوكيل العكسي (reverse proxy)، أو أداة مثل Certbot. يتولى GrabWP التوجيه والربط بمجرد وصول الطلب إلى WordPress. الحفاظ على هذا الخط الفاصل واضحاً يوفر عليك الكثير من تذاكر الدعم الفني المربكة.

البدء بنطاق مشترك والترقية لاحقاً

أفضل مسار للإعداد هو البدء بوضع كل tenant على عنوان URL مشترك يعتمد على المسار (أو استخدام wordpress saas subdomain)، والترقية إلى نطاق مخصص فقط عندما يطلب العميل ذلك.

إليك سبب نجاح هذا الأسلوب بشكل كبير. أي تسجيل جديد على yoursite.com/site/acme-widgets لا يحتاج إلى أي إعدادات DNS، لذلك يصبح موقع العميل متاحاً في ثوانٍ. وعندما يقرر الترقية إلى باقة Pro، يقوم بإضافة نطاق مخصص من علامة تبويب النطاقات.

مع تفعيل توجيه الأسماء المستعارة (alias routing) في إصدار Pro، تكون الترقية سلسة: يتم إعادة توجيه (301-redirect) عناوين URL القديمة الخاصة بمعرف الـ tenant إلى عنوان URL المستعار، مع الحفاظ على كل من المسار الفرعي وسلسلة الاستعلام (query string). هذا يعني أن الروابط الحالية، والإشارات المرجعية، وأي صفحات مفهرسة تنتقل إلى النطاق الجديد دون أن تتعطل، ويتم إبلاغ محركات البحث بأن المحتوى قد تم نقله بشكل دائم.

يتناسب هذا النموذج التدريجي أيضاً بشكل طبيعي مع التسعير. يمكن أن تكون المواقع القائمة على المسار ضمن الباقة المجانية أو التجريبية، بينما يمكن أن تكون النطاقات المخصصة ميزة مدفوعة في باقة Pro بسعر $9.99/month. يقوم العملاء بالترقية عندما تصبح القيمة واضحة لهم، وهو بالضبط الوقت الذي يريدون فيه الحصول على نطاقهم الخاص.

الأخطاء الشائعة

تظهر بعض المشاكل بشكل متكرر عندما تبدأ الفرق في طرح النطاقات المخصصة لأول مرة:

  • توقع أن تقوم الإضافة (plugin) بإصدار الشهادات. إنها لا تفعل ذلك. قم بتوفير TLS في مستوى الخادم أو الوكيل (proxy) قبل ربط النطاق.
  • لم يتم نشر DNS بعد. قد يستغرق النطاق الموجه حديثاً بعض الوقت حتى يتم تحليله. تحقق من DNS قبل افتراض أن عملية الربط لا تعمل.
  • نسيان مزامنة الروابط الرمزية بعد التغييرات المجمعة. إذا قمت باستيراد أو نقل المستأجرين خارج مسار الإنشاء العادي، فقم بتشغيل الإجراء الموجود في إعدادات Pro لمزامنة الروابط الرمزية للنطاقات عبر جميع المستأجرين.
  • تخطي عمليات إعادة التوجيه 301 عند الترقية. بدون توجيه الأسماء المستعارة، يمكن أن تصبح الروابط القديمة القائمة على المسار غير صالحة. قم بتفعيل توجيه الأسماء المستعارة في إصدار Pro حتى يتم إعادة توجيه عناوين URL الخاصة بمعرف الـ tenant إلى النطاق المخصص.
  • تغيير بادئة المسار بعد الإطلاق. إذا قمت بتغيير GRABWP_TENANCY_PATH_PREFIX لاحقاً، فسوف تتغير عناوين URL للمسارات الحالية. حدد بادئة المسار الخاصة بك مبكراً.

ابدأ الآن

إن ربط النطاقات المخصصة هو الفارق بين النسخة التجريبية والمنتج الحقيقي. ابدأ مع كل عميل على عنوان URL قائم على المسار لإعداد فوري، ثم دعهم يقومون بالترقية إلى نطاقهم الخاص من علامة تبويب النطاقات عندما يكونون مستعدين. يتولى GrabWP التوجيه من جهة WordPress ومزامنة الروابط الرمزية بحيث يتم تحميل الـ tenant الصحيح دائماً.

هل أنت مستعد لتقديم نطاقات مخصصة في منصة WordPress SaaS الخاصة بك؟ استكشف منصة GrabWP WaaS، واقرأ دليلنا المرافق حول كيفية إنشاء WordPress SaaS بدون كود، أو احصل على الإضافة المجانية GrabWP Tenancy plugin لبدء التجربة اليوم.

مقالات ذات صلة

الأسئلة الشائعة

هل يُصدر GrabWP شهادات SSL للنطاقات المخصصة الخاصة بعملائي؟
لا. يتولى GrabWP التوجيه والربط من جهة WordPress بحيث يتم تحميل الـ tenant الصحيح لكل نطاق. يُعد إصدار شهادات TLS وتوجيه DNS إلى خادمك عملاً قياسياً لخوادم الويب، وعادةً ما يتم التعامل معه بواسطة الاستضافة، أو الوكيل العكسي (reverse proxy)، أو أداة مثل Certbot. قم بتوجيه DNS الخاص بالعميل إلى خادمك، ووفّر الشهادة، ثم اربط النطاق بالـ tenant في GrabWP.
هل يمكن لـ tenant واحد امتلاك أكثر من نطاق؟
نعم. يدعم GrabWP Tenancy نطاقات متعددة لكل tenant. يمكنك ربط نطاق مخصص أساسي بالإضافة إلى أسماء مستعارة (aliases) إضافية من خلال واجهة الإدارة أو ملف ربط الـ tenant، ويقوم نظام تحليل عناوين URL المركزي بتوجيهها جميعاً إلى نفس الـ tenant.
هل يمكن للعميل البدء على نطاق مشترك وإضافة نطاق مخصص لاحقاً؟
نعم. ابدأ كل tenant على عنوان URL قائم على المسار (path-based) مثل yoursite.com/site/client-a دون أي تغييرات في DNS، ثم أضف نطاقاً مخصصاً عندما يكون العميل جاهزاً. مع تفعيل توجيه الأسماء المستعارة في إصدار Pro، يتم إعادة توجيه (301-redirect) عناوين URL القديمة الخاصة بمعرف الـ tenant إلى النطاق الجديد، مع الحفاظ على المسار الفرعي (sub-path) وسلسلة الاستعلام (query string).

Editorial standards: Our content is written by WordPress experts with hands-on multi-tenancy experience. Articles are fact-checked and regularly updated to ensure accuracy.