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

يمكنك التحكّم بشكل أكبر في علامة 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

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

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

  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 لملف شخصي على Google Shopping بعنوان 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
    } ]