Настройте хостинг subpath с помощью Vercel.

Узнайте, как разместить свой справочный центр в подкаталоге, например, /help, используя Vercel и Next.js.

1 мин чтения

Вы можете разместить свой справочный центр Notiondesk на подкаталоге вашего веб-сайта, используя Vercel и Next.js.

Например, вместо использования поддомена типа help.yourdomain.com, вы можете разместить свой справочный центр по следующим адресам: yourdomain.com/help, yourdomain.com/docs или yourdomain.com/support

Такая настройка полезна, если ваш веб-сайт уже размещен на Vercel, и вы хотите, чтобы ваша документация, база знаний или контент поддержки оставались под тем же доменом.

В этом руководстве вы узнаете, как настроить прокси-сервер Next.js, чтобы посетители могли получать доступ к вашему справочному центру напрямую из выбранного вами подкаталога, при этом основной сайт останется неизменным.

Прежде чем начать

Перед настройкой дополнительного хостинга на Vercel убедитесь, что у вас есть:

  • Существующий справочный центр Notiondesk
  • Доступ к вашему проекту Vercel
  • Доступ к коду вашего веб-сайта
  • Веб-сайт, размещенный на платформе Vercel.
  • Вспомогательный путь, который вы хотите использовать для своего справочного центра, например:
    • __СОХРАНЕНО_21__
    • __СОХРАНЕНО_20__
    • __СОХРАНЕНО_19__
  • В Notiondesk включено размещение подпутей.

икона
В этом руководстве предполагается, что ваш веб-сайт создан с использованием Next.js и развернут на Vercel. Информацию о поддержке других провайдеров можно найти здесь: Разместите свой справочный центр в подкаталоге .

Включите размещение подпутей в Notiondesk

Откройте панель управления Notiondesk и перейдите в раздел Settings > General.

Прокрутите до раздела Domains, затем включите переключатель Subpath.

Выберите Vercel в качестве поставщика услуг установки. Notiondesk сгенерирует прокси-код Vercel / Next.js для вашего справочного центра.

Скопируйте сгенерированный код. На следующем шаге вы добавите его в свой проект Next.js.

Добавьте файл прокси в свой проект Next.js.

После копирования сгенерированного кода из Notiondesk, добавьте его в свой проект Next.js.

Имя файла зависит от вашей версии Next.js:

  • Для Next.js версии 15 и ниже используйте middleware.ts
  • Для Next.js версии 16 и выше используйте proxy.ts

Добавьте файл в корневую папку вашего проекта:

Или, если в вашем проекте используется каталог src:

Для Next.js версии 16 и выше используйте тот же путь, но с proxy.ts вместо .

Вставьте сгенерированный программой Notiondesk код в этот файл.

Этот прокси-сервер будет перенаправлять запросы из выбранного вами подкаталога, например, /help, в ваш справочный центр Notiondesk без изменения URL-адреса в браузере.

Настройте сопоставитель

Этот сопоставитель указывает Next.js, какие маршруты должны обрабатываться прокси-сервером Notiondesk.

Для справочного центра, размещенного по адресу /help, в сопоставитель следует включить:

Если вы используете другой подпуть, например /docs или /support, замените /help на выбранный вами подпуть.

middleware.ts
src/middleware.ts

matcher: ["/help", "/help/:path*", "/_nd/:path*"]

icon
Этот маршрут обязателен. Без него некоторые ресурсы и функции справочного центра могут работать некорректно./_nd/:path*

Пример использования прокси Vercel / Next.js

Ниже приведён пример конфигурации прокси Next.js для справочного центра, размещённого по адресу /help.

// Next.js <= 15: middleware.ts
// Next.js 16+: proxy.ts with export function proxy
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";

const ORIGIN = "https://your-help-center.notiondesk.help";
const CUSTOM_HOST = "yourdomain.com";
const SUBPATH = "/help";

function isSubpathRequest(pathname: string) {
  return pathname === SUBPATH || pathname.startsWith(SUBPATH + "/");
}

export function middleware(request: NextRequest) {
  const isSubpath = isSubpathRequest(request.nextUrl.pathname);
  const target = new URL(request.nextUrl.pathname + request.nextUrl.search, ORIGIN);

  const headers = new Headers(request.headers);
  headers.set("Host", CUSTOM_HOST);
  headers.set("X-Forwarded-Host", CUSTOM_HOST);
  headers.set("X-Forwarded-Proto", "https");

  if (isSubpath) {
    headers.set("X-Site-Path-Prefix", SUBPATH);
  }

  return NextResponse.rewrite(target, { request: { headers } });
}

export const config = {
  matcher: ["/help", "/help/:path*", "/_nd/:path*"],
};

икона
Этот пример приведен только для озна ознакомления. Используйте код, сгенерированный в вашей панели управления, поскольку значения специфичны для вашего справочного центра, домена и выбранного подпути.

Разверните свой проект Vercel

После добавления файла прокси и настройки сопоставления, разверните изменения в Vercel.

  1. Подтвердите изменения.
  1. Загрузите свой код в репозиторий Git.
  1. Дождитесь завершения развертывания Vercel.

После запуска развертывания запросы к выбранному вами подпути будут направляться через прокси-сервер и обрабатываться вашим справочным центром Notiondesk.

Проверьте свою конфигурацию.

После завершения развертывания убедитесь, что ваш центр поддержки работает корректно.

Откройте главную страницу справочного центра. Затем откройте URL-адрес известной статьи и убедитесь, что страница успешно загрузилась.

Подтвердите, что:

  • Центр поддержки загружается под вашим основным доменом.
  • Страницы статей открываются корректно.
  • Изображения, стили и скрипты загружаются корректно.
  • URL-адрес в браузере остаётся на вашем собственном домене.
  • Основной сайт продолжает работать вне подкаталога справочного центра.

Если всё загрузилось корректно, настройка вашего подкаталога хостинга завершена!

Связанные статьи

Эта страница была полезной?