Việc chuyển hướng trang sẽ đưa người đọc khi họ truy cập vào đường dẫn cũ trên trung tâm trợ giúp của bạn đến một bài viết hoặc bộ sưu tập. API Notiondesk cho phép bạn liệt kê, tạo, cập nhật và xóa các chuyển hướng trang, nhờ đó bạn có thể nhập hàng trăm URL cũ sau khi di chuyển thay vì thêm chúng từng cái một trong bảng điều khiển. Dấu trang, liên kết được chia sẻ và kết quả tìm kiếm vẫn hoạt động bình thường.
Để quản lý chuyển hướng trong bảng điều khiển, hãy xem Cách quản lý chuyển hướng trang trong trung tâm trợ giúp của bạn .
| Phương pháp | Con đường | Phạm vi | Làm |
|---|---|---|---|
GET | /sites/{site_id}/page-redirects | read | Danh sách chuyển hướng, hiển thị bài viết mới nhất trước. |
POST | /sites/{site_id}/page-redirects | write | Tạo một lệnh chuyển hướng |
PATCH | /sites/{site_id}/page-redirects/{redirect_id} | write | Cập nhật chuyển hướng |
DELETE | /sites/{site_id}/page-redirects/{redirect_id} | admin | Xóa một lệnh chuyển hướng |
Việc tạo và cập nhật các liên kết chuyển hướng đòi hỏi một kế hoạch bao gồm cả việc chuyển hướng trang.
Chuyển hướng trang danh sách
Danh sách này bao gồm mọi ngôn ngữ, ngôn ngữ mới nhất được liệt kê trước. Nó bao gồm cả các liên kết chuyển hướng do bạn tạo và các liên kết mà Notiondesk tự động tạo sau khi thay đổi slug.
curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/page-redirects?page_size=100" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16"{
"object": "list",
"data": [
{
"id": "3f1c2a9e-8b7d-4c6e-9a5f-1e2d3c4b5a69",
"locale": "en",
"type": "article",
"origin": "manual",
"source_path": "/legacy/getting-started",
"target_id": "1761580412",
"target_title": "Getting started",
"target_slug": "getting-started",
"target_status": "published"
}
],
"has_more": false,
"next_cursor": null
}| Cánh đồng | Nghĩa |
|---|---|
id | Mã định danh chuyển hướng, được sử dụng là redirect_id |
locale | Ngôn ngữ mục tiêu |
type | article hoặc category (một bộ sưu tập) |
origin | manual dành cho một lần chuyển hướng do ai đó tạo ra, system dành cho một Notiondesk được tạo ra khi slug thay đổi |
source_path | Con đường chuyển hướng |
target_id | Mã id của bài viết hoặc bộ sưu tập mục tiêu. |
| __ĐƯỢC BẢO TỒN_61__, __ĐƯỢC BẢO TỒN_60__ | Tiêu đề và đoạn đường dẫn của mục tiêu trong locale |
target_status | Trạng thái của mục tiêu, chẳng hạn như published hoặc draft |
Danh sách chỉ hiển thị tối đa 10.000 liên kết chuyển hướng mới nhất. Nếu hệ thống tích hợp của bạn xóa các liên kết chuyển hướng trong khi liệt kê chúng, hãy bắt đầu lại từ trang đầu tiên sau đó: việc xóa sẽ làm dịch chuyển các mục tiếp theo, do đó trang tiếp theo có thể bỏ qua một mục. Xem Phân trang và các yêu cầu API phiên bản Notiondesk .
Tạo trang chuyển hướng
Mọi trường thông tin đều bắt buộc:
curl -X POST "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/page-redirects" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 6f0d6b1e-create-getting-started" \
-d '{"type": "article", "source_path": "/legacy/getting-started", "target_id": "1761580412", "locale": "en"}'| Cánh đồng | Kiểu | Ghi chú |
|---|---|---|
type | sợi dây | __ĐÃ BẢO TỒN_54__ hoặc __ĐÃ BẢO TỒN_53__ |
source_path | sợi dây | Đường dẫn chuyển hướng, tối đa 512 ký tự, ví dụ: /legacy/getting-started. Không có đường dẫn chuyển hướng nào khác của trung tâm trợ giúp được phép sử dụng đường dẫn này. |
target_id | sợi dây | Mã id của bài viết hoặc bộ sưu tập mục tiêu, từ danh sách bài viết hoặc bộ sưu tập . Tối đa 255 ký tự. |
locale | sợi dây | Ngôn ngữ đích. Ngôn ngữ đích phải có bản dịch bằng ngôn ngữ đó. |
Tuyến đường trả lời 201 Created với lệnh chuyển hướng mới, trong cùng các trường như danh sách.
- Một
source_pathchuyển hướng khác đã sử dụng câu trả lời 409conflict_error, và thông báo nêu tên đường dẫn.
- Một
target_idkhông có bản dịch tronglocaletrả về 404not_found, và thông báo nêu tên ID.
Gửi mã lỗi Idempotency-Key với mỗi lần tạo. Việc thử lại với cùng khóa và nội dung sẽ trả về mã lỗi 201 mà không tạo chuyển hướng thứ hai. Xem Xử lý lỗi API Notiondesk, giới hạn tỷ lệ và thử lại .
Cập nhật chuyển hướng trang
Chỉ gửi các trường cần thay đổi. Các trường bạn không gửi sẽ giữ nguyên giá trị hiện tại.
Các trường tuân theo các quy tắc tạo. Tuyến đường trả lời 200 OK với lệnh chuyển hướng đã cập nhật.
Việc chuyển hướng vẫn phải trỏ đến một mục tiêu tồn tại trong locale sau khi thay đổi. Để trỏ việc chuyển hướng bài viết đến một bộ sưu tập, hãy gửi type và target_id cùng nhau.
Xóa chuyển hướng trang
Việc xóa không thể hoàn tác, vì vậy tuyến đường này cần hai biện pháp bảo vệ:
curl -X PATCH "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/page-redirects/3f1c2a9e-8b7d-4c6e-9a5f-1e2d3c4b5a69" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16" \
-H "Content-Type: application/json" \
-d '{"source_path": "/legacy/start"}'curl -i -X DELETE "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/page-redirects/3f1c2a9e-8b7d-4c6e-9a5f-1e2d3c4b5a69" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16" \
-H "Content-Type: application/json" \
-d '{"confirm": true}'- phạm vi
admin;
- phần thân
{"confirm": true}, với giá trị boolean JSONtrue.
Đường dẫn trả về lỗi 204 No Content. Người đọc mở đường dẫn cũ sẽ không còn bị chuyển hướng nữa. Xóa cùng một đường dẫn chuyển hướng sẽ trả về lỗi 404 not_found, trừ khi bạn thử lại với cùng lỗi Idempotency-Key.
adminChuyển hướng nhập sau khi di chuyển
Bạn đang chuyển từ một công cụ trung tâm trợ giúp khác? Hãy ánh xạ từng đường dẫn cũ đến bài viết mới tương ứng, sau đó tạo một liên kết chuyển hướng cho mỗi hàng. Đoạn mã này đọc một tệp CSV với các cột source_path,target_id,locale:
import { readFileSync } from "node:fs";
import { createHash } from "node:crypto";
const siteId = "c74781f6-1aea-4e17-ab23-bbb8b4d174b6";
const rows = readFileSync("redirects.csv", "utf8").trim().split(/\r?\n/).slice(1);
for (const row of rows) {
const [source_path, target_id, locale] = row.split(",");
const idempotencyKey = createHash("sha256").update(`${source_path}|${target_id}|${locale}`).digest("hex");
const response = await fetch(`https://api.notiondesk.so/sites/${siteId}/page-redirects`, {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.NOTIONDESK_API_KEY}`,
"nd-version": "2026-10-16",
"Content-Type": "application/json",
"Idempotency-Key": idempotencyKey,
},
body: JSON.stringify({ type: "article", source_path, target_id, locale }),
});
if (response.status === 429) {
const seconds = Number(response.headers.get("Retry-After")) || 5;
console.log(`Rate limited, waiting ${seconds}s`);
await new Promise((resolve) => setTimeout(resolve, seconds * 1000));
rows.push(row);
continue;
}
const result = await response.json();
console.log(response.status, source_path, response.ok ? result.id : result.code);
}- Khóa được tạo ra từ hàng, vì vậy chạy tập lệnh hai lần sẽ không tạo ra gì hai lần. Hàng được sửa sẽ có một khóa mới.
- Đường dẫn đã có nhật ký chuyển hướng sẽ hiển thị
conflict_error. Thay vào đó, hãy cập nhật nó hoặc giữ nguyên.
- Số lượng yêu cầu ghi bị giới hạn ở mức 20 yêu cầu mỗi phút cho mỗi khóa, vì vậy 500 lần chuyển hướng sẽ mất khoảng 25 phút. Tập lệnh sẽ chờ khi bị giới hạn tốc độ, sau đó sẽ thử lại hàng đó.
- Chỉ sử dụng khóa có phạm vi
readvàwrite.
Lỗi
| Trạng thái | Khi | code |
|---|---|---|
| 400 | Một trường bị thiếu hoặc trống, type hoặc locale không được chấp nhận, giá trị quá dài, confirm không phải là true, hoặc phần thân chứa một trường không xác định. | validation_error |
| 403 | Khóa này thiếu read, write hoặc admin, tùy thuộc vào tuyến đường. | insufficient_scope |
| 403 | Gói dịch vụ của bạn không bao gồm chuyển hướng trang hoặc người tạo khóa không thể thay đổi trung tâm trợ giúp này. | permission_denied |
| 404 | Trung tâm trợ giúp hoặc trang chuyển hướng không tồn tại trong không gian làm việc của bạn, hoặc mục tiêu không có bản dịch trong locale | not_found |
| 409 | Một trang chuyển hướng khác của trung tâm trợ giúp đã sử dụng source_path | conflict_error |
Xem các lỗi API, giới hạn tốc độ và số lần thử lại của Handle Notiondesk để biết phạm vi lỗi và các mã khác.
Câu hỏi thường gặp
Tôi có cần tạo chuyển hướng khi thay đổi slug không?
Thông thường là không. Notiondesk tự động tạo chuyển hướng khi bạn thay đổi slug do chính bạn thiết lập trên bài viết hoặc bộ sưu tập đã xuất bản, tính năng chuyển hướng tự động được bật cho trung tâm trợ giúp và gói dịch vụ của bạn bao gồm chuyển hướng trang. Những chuyển hướng đó sẽ hiển thị origin: "system" trong danh sách. Trong bất kỳ trường hợp nào khác, hãy tự tạo chuyển hướng. Tìm hiểu thêm về slug trong Cách tạo URL thân thiện cho bài viết và bộ sưu tập .
Liệu lệnh chuyển hướng có thể trỏ đến một URL bên ngoài không?
Không. Việc chuyển hướng trang trỏ đến một bài viết hoặc một tập hợp các bài viết trong cùng trung tâm trợ giúp.
Tại sao khóa của tôi có thể tạo chuyển hướng nhưng không thể xóa chúng?
Việc xóa yêu cầu phạm vi admin, trong khi việc tạo và cập nhật thì không. Thêm admin vào khóa và kiểm tra xem người tạo ra nó có phải là chủ sở hữu không gian làm việc hoặc Quản trị viên hay không.