# 站点重定向

<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 包含重复的 source 值，只会处理第一行。导入以 upsert 方式运行：具有相同 source 的现有重定向会被更新，而尚不存在的 source 会创建新的重定向。

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

#### CSV 示例

| source               | 目标                         | intent  | 结果              |
| -------------------- | -------------------------- | ------- | --------------- |
| /docs/site-redirects | <https://example.com/page> | 空白      | 创建或更新生效重定向      |
| /docs/site-redirects | <https://example.com/page> | 生效      | 创建或更新生效重定向      |
| /docs/site-redirects | <https://example.com/page> | 草稿      | 创建或更新草稿重定向      |
| /docs/site-redirects | 空                          | 空白      | 移除生效重定向         |
| /docs/site-redirects | 空                          | 生效      | 移除生效重定向         |
| /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 无法解析，则会将其与 [空间级重定向](https://gitbook-v2-3sscp147r-gitbook.vercel.app/url/gitbook.com/docs/documentation/zh/getting-started/git-sync/content-configuration#redirects)进行比对，这些重定向定义在你仓库的 `.gitbook.yaml` 文件中。
3. 最后，会检查该 URL 是否匹配站点级重定向，这些重定向通过 [上述流程](#creating-redirects).
