Ejemplo: necesito redirigir esta URL: https://example.com/data/publications a esta: https://example.com/data/publications.json
Ya probé la redirección de Next.js pero no pude agregar una cadena que no comienza con /
Ejemplo, esto no funciona:
async redirects() { return [ { source: '/data/:slug', destination: '/data/:slug.json', permanent: true, }, ] },Agregar () alrededor de .json no ayuda
¿Qué tal usar un middleware? El middleware es una función que se ejecuta cuando el cliente se conecta a una ruta específica.
Para utilizar el software intermedio; dentro de su carpeta "páginas/datos", cree el archivo "_middleware.js" y use el código a continuación. Este código verifica si la URL tiene un final de extensión "json". Si no es así, redirige al cliente a la URL con la versión "json".
import { NextResponse } from 'next/server'; export default function myMiddleware(req, e) { if (!req.url.endsWith("json")) return new NextResponse.redirect(`${req.url}.json`); }