6

我试图在我的 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

4

4 回答 4

4

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

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

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

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

于 2021-04-22T12:37:35.470 回答
2

您可以像这样将所有导入以及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
);

于 2021-01-21T22:39:35.950 回答
0

你用的是哪个 NextJS 版本?从 9.5 开始支持重定向

于 2020-08-29T19:30:04.647 回答
0

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

于 2021-07-08T21:50:59.387 回答