إعداد نطاق خاص للروابط الديناميكية

يمكنك التحكّم بشكل أكبر في Dynamic Linksالعلامة التجارية لـ Dynamic Links من خلال استخدام نطاقك الخاص بدلاً من النطاق الفرعي page.link. باستخدام النطاقات المخصّصة، يمكنك إنشاء Dynamic Links مثل الأمثلة التالية:

https://example.com/link-suffix
https://example.com/links/promos/link-suffix
https://links.example.com/link-suffix
https://ex.amp.le/link-suffix

يُطلق على جزء عنوان URL الذي يسبق link-suffix اسم بادئة عنوان URL، وهو يتضمّن نطاق Dynamic Link المخصّص وبادئة مسار. عليك تقديم بادئة عنوان URL عند إنشاء Dynamic Links.

يتطلّب إعداد نطاق مخصّص الحصول على إذن "محرِّر" أو "مالك" في مشروعك على Firebase.

استخدام نطاق الويب الخاص بك في Dynamic Links

يمكنك استخدام النطاق نفسه لـ Dynamic Links وصفحات الويب والروابط العامة وروابط التطبيقات، ولكن في حال فعلت ذلك، عليك التأكّد من أنّ عناوين URL الخاصة بـ Dynamic Link لا تتعارض مع عناوين URL الخاصة بالويب. وعند ضبط Dynamic Links لاستخدام بادئة عنوان URL معيّنة، يتم التعامل مع جميع عناوين URL التي تبدأ بتلك البادئة على أنّها Dynamic Links، وبالتالي لا يمكنك استخدام عناوين URL التي تتضمّن تلك البادئة للإشارة إلى محتوى عادي مستضاف.

على سبيل المثال، إذا أردت إنشاء Dynamic Link للمرجع https://example.com/my-resource (صفحة ويب أو رابط عام أو رابط تطبيق)، لا يمكنك استخدام https://example.com/ كبادئة عنوان URL Dynamic Links، لأنّ ذلك سيؤدي إلى التعامل مع https://example.com/my-resource على أنّه Dynamic Link. بدلاً من ذلك، عليك استخدام بادئة عنوان URL مع نطاق مختلف أو بادئة مسار مختلفة.

وبالتالي، لن يعمل عنوان URL الطويل التالي Dynamic Links (والروابط القصيرة المكافئة) على النحو المنشود لأنّ عناوين URL المحدّدة بواسطة المَعلمة link تبدأ ببادئة عنوان URL Dynamic Link، أي https://example.com/:

 https://example.com/?link=https://example.com/my-resource
 https://example.com/?link=https://example.com/resources/my-resource

في المقابل، يمكن استخدام Dynamic Links الطويل التالي (والروابط القصيرة المكافئة)، لأنّ بادئات عناوين URL لا تتعارض مع عناوين URL الخاصة بـ link:

 https://link.example.com/?link=https://example.com/my-resource
 https://example.com/links/?link=https://example.com/my-resource
 https://ex.amp.le/?link=https://example.com/my-resource

إعداد نطاق خاص في وحدة تحكّم Firebase

يمكنك عادةً إعداد نطاق مخصّص بالكامل في وحدة تحكّم Firebase. لإجراء ذلك، اتّبِع الخطوات التالية:

  1. إذا لم تكن قد أعددت Firebase Hosting لمشروعك، افتح صفحة Hosting في وحدة تحكّم Firebase، وانقر على البدء، ثم اتّبِع تعليمات الإعداد. ليس عليك إكمال الخطوات المحدّدة في الوقت الحالي.

  2. افتح صفحة Dynamic Links في وحدة تحكّم Firebase.

  3. إذا لم يسبق لك استخدام Dynamic Links، انقر على بدء. بخلاف ذلك، انقر على إضافة بادئة عنوان URL من القائمة المنسدلة.

    بعد ذلك، أكمِل معالج الإعداد، وحدِّد النطاق وبادئة المسار اللذين تريد استخدامهما عند مطالبتك بذلك.

  4. نظام التشغيل iOS فقط: في ملف Info.plist الخاص بمشروع Xcode، أنشئ مفتاحًا باسم FirebaseDynamicLinksCustomDomains واضبطه على بادئات عناوين URL الخاصة بتطبيقك Dynamic Links. على سبيل المثال:

    <key>FirebaseDynamicLinksCustomDomains</key>
    <array>
      <string>https://example.com/link</string>
      <string>https://example.com/promos</string>
    </array>
    

إعداد نطاق خاص يدويًا

في بعض الحالات، مثل عندما يكون لديك نطاق خاص تم إعداده مسبقًا لـ Dynamic Links وتريد إضافة نطاق آخر، أو عندما تضيف نطاقًا مرتبطًا بموقع إلكتروني على Hosting، عليك إعداد نطاقك الخاص يدويًا.

ولإجراء ذلك، يُرجى اتّباع الخطوات التالية:

  1. ربط نطاقك بـ Firebase Hosting إذا لم يسبق لك إجراء ذلك

    يتضمّن إعداد نطاقك باستخدام Firebase Hosting إنشاء ملف الإعداد firebase.json في دليل مشروعك المحلي.

  2. تحديث Firebase CLI إلى أحدث إصدار (الإصدار 6.5.0 أو إصدار أحدث)

  3. اضبط موقعك الإلكتروني Hosting على Dynamic Links في ملف firebase.json الخاص بمشروعك. إذا كان مشروعك يتضمّن مواقع إلكترونية متعددة، احرص على ضبط الموقع الإلكتروني المرتبط بالنطاق الذي تريد استخدامه.

    • اضبط قيمة appAssociation على AUTO. باستخدام هذا الإعداد، تنشئ Hosting بشكلٍ ديناميكي الملفات assetlinks.json وapple-app-site-association عند طلبها.

    • حدِّد بادئات المسارات التي تريد استخدامها في Dynamic Links من خلال ضبط قواعد إعادة الكتابة مع ضبط dynamicLinks على true. يتم توجيه الطلبات إلى هذه المسارات إلى Dynamic Links.

      على عكس القواعد التي تعيد كتابة المسارات إلى عناوين URL، لا يمكن أن تحتوي قواعد إعادة الكتابة Dynamic Link على تعبيرات عادية.

      إذا كانت لديك قواعد إعادة كتابة متعددة لموقعك الإلكتروني، يُرجى العِلم أنّ Hosting تنفّذ قاعدة إعادة الكتابة الأولى التي تتطابق مع الطلب.

    على سبيل المثال:

    "hosting": {
      // ...
      "appAssociation": "AUTO",
      "rewrites": [
        {
          "source": "/promos/**",
          "dynamicLinks": true
        },
        {
          "source": "/links/share/**",
          "dynamicLinks": true
        }
      ]
    }
    

    باستخدام الإعدادات أعلاه، يمكنك إنشاء Dynamic Links باستخدام بادئات عناوين URL مثل الأمثلة التالية:

    https://your-domain/promos/link-suffix
    https://your-domain/links/share/link-suffix
    

    إذا كنت تستخدم هذا النطاق فقط في Dynamic Links، يمكنك استخدام مسار مصدر /** لإنشاء Dynamic Links بدون بادئة مسار:

    {
      "source": "/**",
      "dynamicLinks": true
    }
    

    باستخدام القاعدة أعلاه، يمكنك إنشاء Dynamic Links مثل المثال التالي:

    https://your-domain/link-suffix

  4. نفِّذ تغييرات الإعدادات في Hosting:

    firebase deploy --only hosting

    (اختياري) يمكنك التحقّق من محتوى firebase.json الذي تم نشره باستخدام Hosting REST API.

  5. نظام التشغيل iOS فقط: في ملف Info.plist الخاص بمشروع Xcode، أنشئ مفتاحًا باسم FirebaseDynamicLinksCustomDomains واضبطه على بادئات عناوين URL الخاصة بتطبيقك Dynamic Links. على سبيل المثال:

    <key>FirebaseDynamicLinksCustomDomains</key>
    <array>
      <string>https://example.com/promos</string>
      <string>https://example.com/links/share</string>
    </array>
    

ترتيب الأولوية لـ "Dynamic Links" و"Hosting"

بالنسبة إلى Dynamic Links، يجب الانتباه بشكل خاص إلى ترتيب الأولوية في الاستضافة.

  • تأكَّد من أنّ بادئة عنوان URL الخاصة بـ Dynamic Links لا تتعارض مع إعدادات الاستضافة ذات الأولوية الأعلى (على سبيل المثال، يكون للمحتوى الثابت المستضاف دائمًا أولوية أعلى من عمليات إعادة الكتابة).
  • ضمن السمة rewrites، سيلتزم الردّ Hosting بالقاعدة المحدّدة من خلال أول source glob يلتقط المسار المطلوب.

على سبيل المثال، إذا أعددت Dynamic Link لـ your-domain/source-path/link-suffix ولكن لديك أيضًا محتوى ثابت في your-domain/source-path/index.html، ستكون الأولوية للمحتوى الثابت. سيظهر للمستخدم النهائي index.html بدلاً من Dynamic Link. وبالمثل، إذا كان لديك محتوى ثابت في your-domain/source-path/link-suffix، سيشاهد المستخدم النهائي المحتوى الثابت بدلاً من Dynamic Link.

إذا كنت تريد استخدام العلامة التجارية نفسها لكل من Dynamic Links وHosting، ننصحك باتّباع أحد الخيارات التالية لبادئة عنوان URL الخاص بـ Dynamic Links:

  • اضبط سمة source لتتطابق مع بادئة مسار. على سبيل المثال، إذا كان لديك نطاق مخصّص example.com، يمكن أن تكون قاعدة إعادة الكتابة كما يلي:

    // Domain is example.com
    "rewrites": [ {
      "source": "/links/**",  // Dynamic Links start with "https://example.com/links/"
      "dynamicLinks": true
    } ]
    
  • اضبط نطاقًا فرعيًا لاستخدامه مع Dynamic Links، ثم اضبط السمة source لتتطابق مع هذا النطاق الفرعي. على سبيل المثال، إذا كان لديك نطاق فرعي من links.example.com، يمكن أن تكون قاعدة إعادة الكتابة على النحو التالي:

    // Domain is links.example.com
    "rewrites": [ {
      "source": "/**",  // Dynamic Links start with "https://links.example.com/"
      "dynamicLinks": true
    } ]