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

כדי לשלוט טוב יותר במיתוג של 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 וגם קידומת של נתיב. כשיוצרים את Dynamic Links, צריך לספק קידומת של כתובת URL.

כדי להגדיר דומיין בהתאמה אישית, צריך הרשאת עריכה או הרשאת בעלים בפרויקט Firebase.

שימוש בדומיין האינטרנט שלך ל-Dynamic Links

אפשר להשתמש באותו דומיין בשביל Dynamic Links, דפי אינטרנט, קישורים אוניברסליים וקישורים לאפליקציות, אבל אם עושים את זה, צריך לוודא שכתובות ה-URL של Dynamic Links לא מתנגשות עם כתובות ה-URL של האינטרנט. כשמגדירים את Dynamic Links לשימוש בקידומת מסוימת של כתובת URL, כל כתובות ה-URL שמתחילות בקידומת הזו נחשבות לכתובות URL של Dynamic Links, ולכן אי אפשר להשתמש בכתובות URL עם הקידומת הזו כדי להפנות לתוכן רגיל שמתארח באתר.Dynamic Link

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

    לאחר מכן, משלימים את הפעולות באשף ההגדרה ומציינים את הדומיין ואת קידומת הנתיב שרוצים להשתמש בהם כשמתבקשים.

    קידומת של כתובת ה-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
    

    קידומת של כתובת ה-URL.

    אם אתם משתמשים בדומיין הזה רק בשביל 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 תפעל לפי הכלל שצוין על ידי ה-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
    } ]