Nhà phát triển
Chuyển hướng đến cửa hàng ứng dụng nên là 301 hay 302?
Một chuyển hướng phụ thuộc vào thiết bị phải là tạm thời. Vì sao một 301 đến App Store hay Google Play gây rắc rối về sau.
Câu trả lời ngắn
Hãy dùng 302 (hoặc 307): một chuyển hướng đưa iPhone đến App Store và điện thoại Android đến Google Play trả lời khác nhau theo thiết bị và có thể thay đổi về sau. Trình duyệt ghi nhớ 301 và bỏ qua máy chủ của bạn lần sau, nên URL cửa hàng sửa sau đó vẫn đưa khách quay lại đến URL cũ. OneStoreLink (onestore.link) trả lời bằng 302, nên đích đến đã sửa có hiệu lực từ lần chạm tiếp theo.
Cập nhật lần cuối 2026-11-03
Lựa chọn này trông như một chi tiết khi bạn viết chuyển hướng, nhưng nó quyết định bạn có bao giờ đổi được đích đến hay không. Trình duyệt coi 301 là “địa chỉ này đã chuyển đi vĩnh viễn” và ghi nhớ nó; 302 nghĩa là “lần này hãy đến đó”. Với một liên kết in trên mã QR hay dán trong tiểu sử, vốn được dùng suốt nhiều tháng, khác biệt đó quan trọng hơn mọi thứ khác trong chuyển hướng. Hướng dẫn này giải thích nên dùng mã nào, vì sao, và chuyển hướng đến cửa hàng nên gửi thêm những gì.
Vấn đề
- 301 báo cho trình duyệt rằng việc chuyển là vĩnh viễn, và chúng ghi nhớ nó: lần truy cập sau có thể đến thẳng cửa hàng mà không hỏi máy chủ của bạn.
- Nếu URL cửa hàng thay đổi về sau, một trang ứng dụng mới, một tên gói mới, một lỗi chính tả được sửa, khách quay lại vẫn có thể bị đưa đến URL cũ.
- Một chuyển hướng theo thiết bị trả lời khác nhau cho iPhone và cho điện thoại Android, điều mà một chuyển hướng vĩnh viễn không mô tả được.
- Một URL chuyển hướng được công cụ tìm kiếm lập chỉ mục sẽ thêm một trang chỉ tồn tại để đưa người ta đi nơi khác.
Với onestore.link
- Trả lời bằng 302 (hoặc 307, vốn giữ nguyên cả phương thức yêu cầu): trình duyệt hỏi lại máy chủ của bạn ở mỗi lần truy cập.
- Chọn đích đến ở mỗi yêu cầu, theo user agent của khách, để thay đổi bạn thực hiện có hiệu lực ngay.
- Đánh dấu chuyển hướng bằng header X-Robots-Tag: noindex để chính liên kết ngắn không xuất hiện trong kết quả tìm kiếm.
- onestore.link trả lời bằng 302 kèm header X-Robots-Tag: noindex, và bạn có thể sửa URL cửa hàng bất cứ lúc nào mà không phải đổi liên kết đã chia sẻ.
Cách thực hiện
Không SDK, không build lại. Chỉ là một URL.
- 1
Trả về một chuyển hướng tạm thời
Chọn cửa hàng theo user agent và trả lời với mã trạng thái 302. Ở đây là một Cloudflare Worker; cùng logic đó chạy trên bất kỳ máy chủ nào.
// Chuyển hướng tạm thời: trình duyệt hỏi lại máy chủ của bạn ở mỗi lần truy cập 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
Đưa máy tính đến một trang, không phải cửa hàng
Trang cửa hàng không cài được gì trên máy tính. Hãy đưa khách dùng máy tính đến một trang có cả hai nút cửa hàng và mã QR, trang này cũng bắt được những iPad tự nhận là Mac.
- 3
Hoặc dùng một liên kết được lưu trữ sẵn
Tạo một onestore.link với hai URL cửa hàng của bạn: nó trả lời bằng 302 theo từng thiết bị, giữ liên kết ngắn ngoài chỉ mục và cho phép bạn đổi đích đến về sau.
Câu hỏi thường gặp
301 có tệ cho link tải ứng dụng không?
Nó rủi ro. Trình duyệt có thể ghi nhớ 301 và thôi hỏi máy chủ của bạn, nên một đích đến bạn đổi về sau không đến được những khách đã từng theo liên kết. 302 tránh được điều đó mà không tốn gì.
302 hay 307?
Cả hai đều tạm thời. 307 đảm bảo giữ nguyên phương thức yêu cầu; với một liên kết người ta chạm vào, luôn là GET, hai mã hoạt động như nhau. 302 là lựa chọn phổ biến.
302 có hại cho SEO không?
Không với một liên kết như thế này. Chuyển hướng đến cửa hàng không phải là trang bạn muốn xếp hạng; trang cần xếp hạng là website của bạn. Hãy đánh dấu chuyển hướng là noindex và liên kết đến website từ chính các trang của bạn.
onestore.link gửi gì?
Một 302 đến App Store cho user agent iPhone và iPad, và đến Google Play cho Android, kèm header X-Robots-Tag: noindex. Trình duyệt trong ứng dụng và máy tính nhận một trang thay vào đó, vì ở đó một chuyển hướng đơn thuần sẽ thất bại hoặc không cài được gì.
Sẵn sàng dùng thử?
Miễn phí mãi mãi, không mật khẩu. Liên kết của bạn sẵn sàng trong khoảng một phút.
Tạo liên kết miễn phí của bạnĐang so sánh các công cụ? onestore.link vs bitly →