איך מגדירים דומיין מותאם אישית לקישורים דינמיים

כדי לשלוט טוב יותר במיתוג של 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 וגם לדפי האינטרנט, Universal קישורים וקישורים לאפליקציות. אבל אם כן, צריך לטפל בכתובות ה-URL ב-Dynamic Link אינן מתנגשות עם כתובות האתרים שלכם. כשמגדירים שימוש ב-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 עם דומיין אחר או עם תחילית נתיב אחרת.

לכן, 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 לא נמצאות בקונפליקט עם כתובות ה-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. מעדכנים לגרסה האחרונה של CLI של Firebase (גרסה 6.5.0 ואילך).

  3. הגדרת האתר של Hosting עבור Dynamic Links בפרויקט קובץ firebase.json. אם יש בפרויקט כמה אתרים, חשוב להגדיר את האתר שמקושר לדומיין שבו רוצים להשתמש.

    • מגדירים את appAssociation להיות AUTO. באמצעות ההגדרה הזו, Hosting נוצר באופן דינמי assetlinks.json ו-apple-app-site-association כשנשלחת בקשה.

    • צריך לציין את הקידומות של הנתיב שרוצים להשתמש בהן עבור Dynamic Links על ידי הגדרת שכתוב כללים עם המאפיין dynamicLinks שהוגדר ל-true. הבקשות שנשלחות לנתיבים האלה מקבלות שרת proxy אל 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 שנפרס באמצעות API בארכיטקטורת REST Hosting.

  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 תציית לכלל שצוין על ידי ה-glob הראשון של source שמתעד את הנתיב המבוקש.

לדוגמה, אם מגדירים 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
    } ]