在next.config.js文件中定义后,NextJS重定向不重定向URL

问题描述

我尝试在NextJS应用程序中定义重定向。 但它不起作用。

这是我在next.config.js文件中尝试执行的操作:

const withImages = require('next-images')
const withPlugins = require("next-compose-plugins");
const optimizedImages = require("next-optimized-images");

module.exports = withPlugins(
    [
        [optimizedImages,{
            inlineImageLimit: 512
        }]
    ],{
        async redirects() {
            return [
                {
                    source: "/sales/guest/form",destination: "/",permanent: true
                }
            ]
        },env:{
            testEnvVar: 'vallll'
        }
    }
);

这是有关操作方法的文档: https://nextjs.org/docs/api-reference/next.config.js/redirects

解决方法

您可以像这样将所有导入的内容以及 const 定义添加到第一个 array 参数

const withPlugins = require('next-compose-plugins');
const css = require('@zeit/next-css');
const less = require('@zeit/next-less');

const nextConfig = {
  target: 'serverless',webpack(config,{ isServer,webpack }) {
   // al your config
      
    return config;
  },};

const redirects = {
  async redirects() {
    return [
      {
        source: '/old/blogs/:slug*',destination: 'whatever your new rewrite url',permanent: true,},];
  },};
module.exports = withPlugins(
  [
    [css],[less],[redirects],// you can directly drop your redirect rules here 
  ],nextConfig
);

,

您正在使用哪个NextJS版本?从9.5开始支持重定向

,

为了使重定向和重写在 NextJs 中正常工作,您还需要确保一件事:

如果您使用的是 trailingSlash: true,那么您的源路径必须以斜杠结尾。

{
    source: '/old/:id/',// Notice the slash at the end
    destination: '/new/:id',

任何其他干扰路由的插件或配置也需要考虑在内。

,

对于遇到此问题的任何人,请尝试重新启动服务器。然后将重新加载配置文件。