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

כדי לשלוט טוב יותר במיתוג של 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 שמתחילות בתחילית הזו מטופלות כ-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 עם דומיין אחר או עם תחילית נתיב אחרת.

לכן, ה-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. בקשות לנתיב האלה מועברות ל-Dynamic Links דרך שרת proxy.

      בניגוד לכללים שמשכתבים נתיבים לכתובות 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
    } ]