คุณสามารถควบคุมการสร้างแบรนด์ของลิงก์แบบไดนามิกของคุณได้ดียิ่งขึ้นโดยใช้โดเมนของคุณเองแทนโดเมนย่อยของ 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 ของคุณ
การใช้โดเมนเว็บของคุณสำหรับลิงก์แบบไดนามิก
คุณสามารถใช้โดเมนเดียวกันสำหรับลิงก์แบบไดนามิกและหน้าเว็บ, Universal Links และ App Links ของคุณได้ แต่ถ้าคุณใช้ คุณจะต้องดูแลไม่ให้ URL ของลิงก์แบบไดนามิกไม่ขัดแย้งกับ URL ของเว็บของคุณ เมื่อคุณกำหนดค่าลิงก์แบบไดนามิกให้ใช้คำนำหน้า URL เฉพาะ URL ทั้งหมดที่ขึ้นต้นด้วยคำนำหน้านั้นจะถือเป็นลิงก์แบบไดนามิก ดังนั้น คุณจึงไม่สามารถใช้ URL ที่มีคำนำหน้านั้นชี้ไปยังเนื้อหาที่โฮสต์ตามปกติได้
ตัวอย่างเช่น หากคุณต้องการสร้างลิงก์แบบไดนามิกไปยังทรัพยากร https://example.com/my-resource
(หน้าเว็บ, Universal Link หรือ App Link) คุณจะใช้ https://example.com/
ไม่ได้ 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 โดยทำดังนี้:
หากคุณยังไม่ได้ตั้งค่า Firebase Hosting สำหรับโปรเจ็กต์ของคุณ ให้เปิด หน้า Hosting ของคอนโซล Firebase คลิก Get Started และคลิกผ่านคำแนะนำในการตั้งค่า คุณไม่จำเป็นต้องทำตามขั้นตอนที่ระบุในเวลานี้
เปิด หน้าลิงก์แบบไดนามิก ของคอนโซล Firebase
หากคุณไม่เคยใช้ลิงก์แบบไดนามิกมาก่อน คลิก เริ่มต้นใช้งาน หรือคลิก เพิ่มคำนำหน้า URL จากเมนูแบบเลื่อนลง
จากนั้น ดำเนินการตามวิซาร์ดการตั้งค่าให้เสร็จสิ้น โดยระบุโดเมนและคำนำหน้าเส้นทางที่คุณต้องการใช้เมื่อได้รับแจ้ง
iOS เท่านั้น : ในไฟล์
Info.plist
ของโปรเจ็กต์ Xcode ให้สร้างคีย์ชื่อFirebaseDynamicLinksCustomDomains
และตั้งค่าเป็นคำนำหน้า URL ลิงก์แบบไดนามิกของแอป ตัวอย่างเช่น:<key>FirebaseDynamicLinksCustomDomains</key> <array> <string>https://example.com/link</string> <string>https://example.com/promos</string> </array>
ตั้งค่าโดเมนที่กำหนดเองด้วยตนเอง
ในบางสถานการณ์ เช่น เมื่อคุณได้ตั้งค่าโดเมนแบบกำหนดเองสำหรับลิงก์แบบไดนามิกแล้วและต้องการเพิ่มโดเมนอื่น หรือเมื่อคุณเพิ่มโดเมนที่เชื่อมต่อกับไซต์โฮสติ้งอยู่แล้ว คุณจะต้องตั้งค่าโดเมนแบบกำหนดเองของคุณด้วยตนเอง
โดยทำดังนี้:
เชื่อมต่อโดเมนของคุณกับโฮสติ้ง Firebase หากคุณยังไม่ได้ดำเนินการ
การตั้งค่าโดเมนของคุณด้วย Firebase Hosting รวมถึงการสร้างไฟล์การกำหนดค่า
firebase.json
ในไดเรกทอรีโปรเจ็กต์ในเครื่องของคุณอัปเดตเป็นเวอร์ชันล่าสุดของ Firebase CLI (v6.5.0 หรือใหม่กว่า)
กำหนดค่าไซต์โฮสติ้งของคุณสำหรับลิงก์แบบไดนามิกในไฟล์
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
ปรับใช้การเปลี่ยนแปลงการกำหนดค่าโฮสติ้งของคุณ:
firebase deploy --only hosting
(ไม่บังคับ) คุณสามารถตรวจสอบเนื้อหา
firebase.json
ที่ปรับใช้ได้โดยใช้ Hosting REST APIiOS เท่านั้น : ในไฟล์
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
glob แรกที่รวบรวมเส้นทางที่ร้องขอ
ตัวอย่างเช่น หากคุณตั้งค่าลิงก์แบบไดนามิกสำหรับ 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 } ]