重定向插件

https://www.npmjs.com/package/@payloadcms/plugin-redirects

该插件允许你直接从 Admin Panel 中轻松管理应用的 URL 重定向。它通过在你的配置中添加一个 redirects 集合来实现,该集合允许你指定从一个 URL 到另一个 URL 的重定向规则。你的前端应用可以利用这些数据,使用正确的 HTTP 状态码自动将用户重定向到正确的页面。这在重新平台化或更改 URL 结构时,对 SEO、索引和搜索引擎排名非常有用。

例如,如果你有一个页面 /about 想改为 /about-us,你可以创建一个从旧页面到新页面的重定向,然后利用这些数据在前端应用中实现 HTTP 重定向。这将确保用户被正确重定向而不会受到惩罚,因为搜索引擎会在请求层面收到变更通知。这是一个非常轻量级的插件,可以让你为任何前端框架集成可管理的重定向功能。

该插件完全开源,源代码可在此处查看。 如需帮助,请查看我们的社区帮助。如果发现 bug, 请提交新 issue, 并尽可能提供详细信息。

核心功能

  • 向配置中添加 redirects 集合:
    • 包含 fromto 字段
    • 允许 to 字段引用文档

安装

使用 pnpmnpmYarn 等 JavaScript 包管理器安装插件:

  pnpm add @payloadcms/plugin-redirects

基本用法

在你的 Payload 配置plugins 数组中,使用 选项 调用插件:

import { buildConfig } from 'payload'
import { redirectsPlugin } from '@payloadcms/plugin-redirects'

const config = buildConfig({
  collections: [
    {
      slug: 'pages',
      fields: [],
    },
  ],
  plugins: [
    redirectsPlugin({
      collections: ['pages'],
    }),
  ],
})

export default config

选项

选项类型描述
collectionsstring[]一个包含 collection slugs 的数组,用于填充每个重定向的 to 字段。
overridesobject一个部分 collection 配置,允许你覆盖 redirects collection 上的任何内容。
redirectTypesstring[]提供一个重定向类型数组,用于指定支持的重定向类型选项。
redirectTypeFieldOverrideField一个部分 Field 配置,允许你在启用上述选项时覆盖重定向类型字段。

注意,overrides 中的字段接收一个函数,该函数接收默认字段并返回字段数组。这允许你向 collection 添加字段。

redirectsPlugin({
  collections: ['pages'],
  overrides: {
    fields: ({ defaultFields }) => {
      return [
        ...defaultFields,
        {
          type: 'text',
          name: 'customField',
        },
      ]
    },
  },
  redirectTypes: ['301', '302'],
  redirectTypeFieldOverride: {
    label: '重定向类型 (已覆盖)',
  },
})

TypeScript

所有类型都可以直接导入:

import { PluginConfig } from '@payloadcms/plugin-redirects/types'

示例

Templates Directory 中还包含官方的 Website TemplateE-commerce Template,这两个模板都使用了此插件。