นักพัฒนา
การเปลี่ยนเส้นทางไปแอปสโตร์ควรเป็น 301 หรือ 302
การเปลี่ยนเส้นทางที่ขึ้นกับอุปกรณ์ต้องเป็นแบบชั่วคราว ทำไม 301 ไปยัง App Store หรือ Google Play จึงสร้างปัญหาในภายหลัง
คำตอบสั้น ๆ
ใช้ 302 (หรือ 307): การเปลี่ยนเส้นทางที่ส่ง iPhone ไปยัง App Store และโทรศัพท์ Android ไปยัง Google Play ตอบต่างกันตามอุปกรณ์และอาจเปลี่ยนในภายหลัง เบราว์เซอร์จดจำ 301 และข้ามเซิร์ฟเวอร์ของคุณในครั้งต่อไป URL ของสโตร์ที่แก้ภายหลังจึงยังส่งผู้เข้าชมที่กลับมาไปยัง URL เก่า OneStoreLink (onestore.link) ตอบด้วย 302 ปลายทางที่แก้ไขจึงมีผลตั้งแต่การแตะครั้งถัดไป
ตรวจทานล่าสุด 2026-11-03
ตอนเขียนการเปลี่ยนเส้นทาง ตัวเลือกนี้ดูเหมือนรายละเอียดเล็กๆ แต่มันเป็นตัวตัดสินว่าคุณจะเปลี่ยนปลายทางได้อีกหรือไม่ เบราว์เซอร์ถือว่า 301 หมายถึง “ที่อยู่นี้ย้ายไปถาวรแล้ว” และจดจำไว้ ส่วน 302 หมายถึง “ครั้งนี้ให้ไปที่นั่น” สำหรับลิงก์ที่พิมพ์บน QR code หรือวางไว้ในไบโอ ซึ่งถูกใช้ต่อเนื่องหลายเดือน ความต่างนี้สำคัญกว่าทุกอย่างในการเปลี่ยนเส้นทาง คู่มือนี้อธิบายว่าควรใช้รหัสไหน ทำไม และการเปลี่ยนเส้นทางไปสโตร์ควรส่งอะไรอีก
ปัญหา
- 301 บอกเบราว์เซอร์ว่าการย้ายเป็นแบบถาวร และเบราว์เซอร์จดจำไว้: การเข้าชมครั้งต่อไปอาจไปที่สโตร์โดยไม่ถามเซิร์ฟเวอร์ของคุณ
- ถ้า URL ของสโตร์เปลี่ยนในภายหลัง เช่น หน้าแอปใหม่ ชื่อแพ็กเกจใหม่ หรือแก้คำผิด ผู้เข้าชมที่กลับมาอาจยังถูกส่งไปยัง URL เก่า
- การเปลี่ยนเส้นทางตามอุปกรณ์ตอบต่างกันสำหรับ iPhone และโทรศัพท์ Android ซึ่งการเปลี่ยนเส้นทางแบบถาวรไม่ได้อธิบายไว้
- URL เปลี่ยนเส้นทางที่ถูกเครื่องมือค้นหาจัดทำดัชนีจะเพิ่มหน้าที่มีอยู่เพียงเพื่อส่งคนไปที่อื่น
เมื่อใช้ onestore.link
- ตอบด้วย 302 (หรือ 307 ซึ่งคงวิธีการของคำขอไว้ด้วย): เบราว์เซอร์จะถามเซิร์ฟเวอร์ของคุณใหม่ทุกครั้งที่เข้าชม
- เลือกปลายทางในทุกคำขอ จาก user agent ของผู้เข้าชม เพื่อให้การเปลี่ยนแปลงที่คุณทำมีผลทันที
- ทำเครื่องหมายการเปลี่ยนเส้นทางด้วย header X-Robots-Tag: noindex เพื่อไม่ให้ลิงก์สั้นเองปรากฏในผลการค้นหา
- onestore.link ตอบด้วย 302 และ header X-Robots-Tag: noindex และคุณแก้ URL ของสโตร์ได้ทุกเมื่อโดยไม่ต้องเปลี่ยนลิงก์ที่แชร์ไปแล้ว
วิธีทำ
ไม่ต้องใช้ SDK ไม่ต้องบิลด์ใหม่ แค่ URL เดียว
- 1
ส่งการเปลี่ยนเส้นทางแบบชั่วคราวกลับไป
เลือกสโตร์จาก user agent และตอบด้วยสถานะ 302 ตัวอย่างนี้เป็น Cloudflare Worker ตรรกะเดียวกันใช้ได้กับเซิร์ฟเวอร์ใดก็ได้
// เปลี่ยนเส้นทางชั่วคราว: เบราว์เซอร์ถามเซิร์ฟเวอร์ของคุณใหม่ทุกครั้งที่เข้าชม export default { fetch(req) { const ua = req.headers.get("user-agent") || ""; const ios = "https://apps.apple.com/app/id0000000000"; const android = "https://play.google.com/store/apps/details?id=com.example.app"; const web = "https://example.com/download"; const to = /iPhone|iPad|iPod/.test(ua) ? ios : /Android/i.test(ua) ? android : web; return new Response(null, { status: 302, headers: { Location: to, "X-Robots-Tag": "noindex" } }); }, }; - 2
ส่งคอมพิวเตอร์ไปที่หน้าเว็บ ไม่ใช่สโตร์
หน้าสโตร์ติดตั้งอะไรบนคอมพิวเตอร์ไม่ได้ ส่งผู้เข้าชมเดสก์ท็อปไปที่หน้าที่มีปุ่มสโตร์ทั้งสองปุ่มและ QR code ซึ่งยังจับ iPad ที่ระบุตัวเป็น Mac ได้ด้วย
- 3
หรือใช้ลิงก์ที่โฮสต์ไว้ให้
สร้าง onestore.link ด้วย URL ของสโตร์ทั้งสองของคุณ: มันตอบด้วย 302 ตามอุปกรณ์ ไม่ให้ลิงก์สั้นเข้าไปในดัชนี และให้คุณเปลี่ยนปลายทางได้ในภายหลัง
คำถามที่พบบ่อย
301 ไม่ดีสำหรับลิงก์ดาวน์โหลดแอปหรือเปล่า
มันมีความเสี่ยง เบราว์เซอร์อาจจดจำ 301 และเลิกถามเซิร์ฟเวอร์ของคุณ ปลายทางที่คุณเปลี่ยนภายหลังจึงไปไม่ถึงผู้เข้าชมที่เคยตามลิงก์มาแล้ว 302 หลีกเลี่ยงปัญหานี้ได้โดยไม่มีต้นทุน
302 หรือ 307
ทั้งสองเป็นแบบชั่วคราว 307 รับประกันว่าวิธีการของคำขอจะคงเดิม สำหรับลิงก์ที่คนแตะ ซึ่งเป็น GET เสมอ ทั้งสองทำงานเหมือนกัน 302 เป็นตัวเลือกที่ใช้กันทั่วไป
302 ส่งผลเสียต่อ SEO ไหม
ไม่ สำหรับลิงก์แบบนี้ การเปลี่ยนเส้นทางไปสโตร์ไม่ใช่หน้าที่คุณอยากให้ติดอันดับ หน้าที่ควรติดอันดับคือเว็บไซต์ของคุณ ทำเครื่องหมายการเปลี่ยนเส้นทางเป็น noindex และลิงก์ไปยังเว็บไซต์จากหน้าเว็บของคุณเอง
onestore.link ส่งอะไรกลับไป
302 ไปยัง App Store สำหรับ user agent ของ iPhone และ iPad และไปยัง Google Play สำหรับ Android พร้อม header X-Robots-Tag: noindex เบราว์เซอร์ในแอปและคอมพิวเตอร์จะได้หน้าเว็บแทน เพราะที่นั่นการเปลี่ยนเส้นทางเปล่าๆ จะล้มเหลวหรือติดตั้งอะไรไม่ได้
พร้อมลองแล้วหรือยัง
ฟรีตลอดไป ไม่ต้องใช้รหัสผ่าน ลิงก์ของคุณพร้อมใช้ในราวหนึ่งนาที
สร้างลิงก์ฟรีของคุณกำลังเปรียบเทียบเครื่องมืออยู่ใช่ไหม onestore.link vs bitly →