close

@rspress/plugin-client-redirects

Служит для клиентских редиректов.

Предупреждение

Перед использованием этого плагина убедитесь, что в вашей среде развёртывания правильно настроена страница возврата. Подробнее см. в руководстве SSG refresh-404.

Обратите внимание: клиентские редиректы отличаются от серверных — страница сначала загружается, а затем перенаправляется (что вызывает кратковременную вспышку), и SSR не поддерживается. Если ваша платформа развёртывания поддерживает серверные редиректы (301/302), лучше использовать их для лучшего SEO и удобства пользователей.

Установка

npm
yarn
pnpm
bun
deno
npm add @rspress/plugin-client-redirects -D

Использование

Добавьте следующую конфигурацию в файл rspress.config.ts:

rspress.config.ts
import { pluginClientRedirects } from '@rspress/plugin-client-redirects';
import { defineConfig } from '@rspress/core';

export default defineConfig({
  plugins: [
    pluginClientRedirects({
      redirects: [
        {
          from: '/docs/old1',
          to: '/docs/new1',
        },
      ],
    }),
  ],
});

Конфигурация

Плагин принимает объект с настройками. Доступные свойства этого объекта:

type RedirectRule = {
  from: string | string[];
  to: string;
};

type RedirectsOptions = {
  redirects?: RedirectRule[];
};

from — это путь-шаблон для сопоставления, to — путь, на который будет выполнен редирект. Поддерживаются строки с регулярными выражениями.

Примечание

Один to может обслуживать несколько from: все они будут перенаправляться на один и тот же путь.

Один from не может соответствовать нескольким to: путь редиректа должен быть уникальным и однозначным.

Пример

import path from 'node:path';
import { defineConfig } from '@rspress/core';
import { pluginClientRedirects } from '@rspress/plugin-client-redirects';

export default defineConfig({
  root: path.join(__dirname, 'doc'),
  plugins: [
    pluginClientRedirects({
      redirects: [
        // /docs/old1 -> /docs/new1
        {
          from: '/docs/old1',
          to: '/docs/new1',
        },
        // перенаправление с нескольких старых путей на новый путь
        {
          from: ['/docs/2022', '/docs/2023'],
          to: '/docs/2024',
        },
        // перенаправление с использованием регулярных выражений
        {
          from: '^/docs/old2',
          to: '/docs/new2',
        },
        {
          from: '/docs/old3$',
          to: '/docs/new3',
        },
        // перенаправление на внешний URL
        {
          from: '/docs/old4',
          to: 'https://example.com',
        },
      ],
    }),
  ],
});