# 站点重定向

<figure><img src="https://2111890564-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkEGS7hzeqa35sMXQZ4X%2Fuploads%2FSOD2dR0Bb3RtX6Avb7vg%2F26_01_06_redirects%402x.png?alt=media&#x26;token=7e2bf0a2-947c-46d7-96ff-a4e6b54e60b2" alt="A GitBook screenshot showing site redirects"><figcaption><p>当迁移文档或重组内容以避免失效链接时，站点重定向很有用，因为失效链接会影响 SEO。</p></figcaption></figure>

当你将文档从一个提供商迁移到另一个提供商时，通常会使用重定向——比如你刚把文档迁移到 GitBook 的时候。失效链接会影响 SEO，因此我们建议在需要的地方设置重定向。

除 [GitBook 创建的自动重定向](#about-automatic-redirects)之外，你还可以为站点域名中的任意路径创建重定向。

重定向可以创建为 **生效** 或者 **草稿**。草稿重定向允许你在发布前准备并审核重定向规则。草稿在启用之前不会影响你的线上站点。

## 管理站点上的重定向

要开始使用，请在 GitBook 中查看你的站点仪表板并打开 **设置** 选项卡，然后点击 **域名与重定向**.

### 创建重定向

点击 **添加重定向** 并选择 **手动** 选项。&#x20;

填写 **源路径** ——你想要重定向的 URL slug——以及 **目标** 内容，即你希望访客被发送到的页面。你可以选择站点上的任何章节、变体或页面。

点击 **启用重定向** 即可立即启用该重定向。

如果你想先创建重定向但暂时不让它上线，请改为点击 **另存为草稿** 。草稿重定向会出现在 **草稿** 选项卡中，并可稍后启用。

你也可以通过在源路径末尾添加 \* 来创建 **通配符重定向** ，例如：

* /docs/\* 匹配 /docs/ 下的所有内容
* /changelog\* 匹配以 /changelog 开头的路径

当你的源路径包含通配符（\*）时，你可以启用 **用匹配文本替换通配符**.

* **开启：** 被 \* 匹配到的部分会附加到目标路径后面。
  * 示例：源路径 /docs/\* → 目标 /help\
    /docs/install 重定向到 /help/install
* **关闭：** 所有匹配的 URL 都会重定向到同一个固定目标。
  * 示例：源路径 /docs/\* → 目标 /help\
    /docs/install 重定向到 /help

如果你想为同一页面添加另一个重定向，请在点击之前切换 **添加另一个重定向** 。 **启用重定向** 或者 **另存为草稿**.

当你添加重定向时，弹窗会保持打开，并将目标内容设置为你上一次的选择，这样你就可以快速添加另一个源路径。

### 编辑重定向

要编辑重定向，请点击列表中它旁边的 **编辑** 图标。更新重定向后点击 **启用重定向** 以发布你的更改。

如果该重定向当前是 **草稿**，你也可以在编辑弹窗中直接点击 **启用重定向**.

### 启用草稿重定向

草稿重定向会显示在重定向表的 **草稿** 选项卡中。

你可以通过两种方式发布草稿重定向：

• 打开重定向并点击 **启用重定向** 在编辑弹窗中。\
• 使用 **表格中的切换开关** 直接启用该重定向。

一旦启用，该重定向会移至 **生效** 选项卡，并立即开始路由访客。

### 从 CSV 导入重定向

点击 **添加重定向** 并选择 **上传 CSV**.

上传一个包含以下列的 CSV： `source`, `目标`，以及可选的 `intent`.

* `source` 是你想要重定向的路径，例如 /docs/site-redirects
* `目标` 可以是：
  * 一个具体页面，使用该页面的管理 URL，如下方截图所示
  * 一个外部 URL
  * 为空，具体取决于 intent
* `intent` 可以是：
  * live，留空，或完全省略，用于创建、更新或移除生效重定向
  * draft，用于创建、更新或移除草稿重定向
  * publish，用于将现有草稿重定向发布为生效状态， `目标` 必须为空。

<div data-with-frame="true"><figure><img src="https://2111890564-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkEGS7hzeqa35sMXQZ4X%2Fuploads%2F3jzPOAcYyO1YCMvD74ea%2Fimage.png?alt=media&#x26;token=0ab897af-4164-4673-9877-196a211f0237" alt=""><figcaption><p>你可以在此菜单中找到页面的 GitBook 管理 URL</p></figcaption></figure></div>

每次导入最多支持 500 行。

如果你的 CSV 包含重复的源值，则只处理第一行。导入以 upsert 方式运行：具有相同源的现有重定向会被更新，而尚不存在的源会创建新的重定向。

如果有任何行失败，可以从右下角的提示气泡中下载错误 CSV。它包含源、目标以及每个错误的简短说明，方便你修复后，删除错误列并重新导入。

#### CSV 示例

| source               | 目标                         | intent  | 结果              |
| -------------------- | -------------------------- | ------- | --------------- |
| /docs/site-redirects | <https://example.com/page> | 空白      | 创建或更新生效重定向      |
| /docs/site-redirects | <https://example.com/page> | live    | 创建或更新生效重定向      |
| /docs/site-redirects | <https://example.com/page> | 草稿      | 创建或更新草稿重定向      |
| /docs/site-redirects | 空                          | 空白      | 移除生效重定向         |
| /docs/site-redirects | 空                          | live    | 移除生效重定向         |
| /docs/site-redirects | 空                          | 草稿      | 移除草稿重定向         |
| /docs/site-redirects | 空                          | publish | 将现有草稿重定向发布为生效状态 |

## 关于自动重定向

每当页面被移动或重命名时，其规范 URL 也会随之变化。为了保持你的内容可访问，GitBook 会自动创建一个 [HTTP 307](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/307) 从旧 URL 到新 URL 的重定向。

每次加载 URL 时，GitBook 都会按以下步骤解析它：

1. 站点内容会通过跟随任何自动创建的重定向解析到其规范 URL。
2. 如果无法解析该 URL，则会检查该 URL 是否匹配 [空间级重定向](https://gitbook-v2-q67etdj25-gitbook.vercel.app/url/gitbook.com/docs/documentation/zh/getting-started/git-sync/content-configuration#redirects)，这些重定向定义在你的仓库的 `.gitbook.yaml` 文件的子目录。
3. 最后，URL 会检查站点级重定向，这些重定向通过 [上面的流程](#creating-redirects).
