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

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