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

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

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، ويحتوي على كل من نطاق الرابط الديناميكي المخصص وبادئة مسار. ستحتاج إلى تقديم بادئة عنوان URL عند إنشاء "روابط ديناميكية".

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

استخدام نطاق الويب للروابط الديناميكية

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

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

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

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

في المقابل، يمكن أن تعمل الروابط الديناميكية الطويلة التالية (والروابط القصيرة المكافئة التالية)، لأنّ بادئات عناوين 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" لمشروعك، افتح صفحة الاستضافة في وحدة تحكُّم Firebase، وانقر على البدء، ثم انقر على تعليمات الإعداد. لا يتعين عليك إكمال الخطوات المشار إليها في الوقت الحالي.

  2. افتح صفحة الروابط الديناميكية في وحدة تحكُّم Firebase.

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

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

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

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

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

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

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

  1. اربط نطاقك باستضافة Firebase إذا لم يسبق لك إجراء ذلك.

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

  2. التحديث إلى آخر إصدار من واجهة سطر الأوامر في Firebase (الإصدار 6.5.0 أو إصدار أحدث).

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

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

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

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

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

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

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

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

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

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

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

    باستخدام القاعدة أعلاه، يمكنك إنشاء "روابط ديناميكية" مثل المثال التالي:

    https://your-domain/link-suffix

  4. انشر التغييرات التي أجريتها على إعدادات خدمة الاستضافة:

    firebase deploy --only hosting

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

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

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

الترتيب حسب الأولوية للروابط الديناميكية والاستضافة

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

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

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

إذا كنت تريد استخدام العلامة التجارية نفسها لكل من "الروابط الديناميكية" و"الاستضافة"، جرّب أحد الخيارات التالية لبادئة عنوان URL للروابط الديناميكية:

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

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

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