Nuxt.js - 在所有 url 的末尾强制尾随斜杠

Joe*_*e82 7 vue.js nuxt.js

我正在寻找一种方法来确保我的所有 url 都以斜杠结尾(所以首先检查末尾是否已经有斜杠,如果没有,则添加一个)。

我已经尝试过nuxt-redirect-module,它可以添加斜杠,但它会导致无限重定向

redirect: [
  {
    from: '^(.*)$',
    to: (from, req) => {
      let trailingUrl = req.url.endsWith('/') ? req.url : req.url + '/'
      return trailingUrl
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

欢迎任何见解。谢谢!

ant*_*nku 5

您可以尝试仅匹配那些不以斜杠结尾的 URL:

redirect: [
    {
        from: '^.*(?<!\/)$',
        to: (from, req) => req.url + '/'
    }
]
Run Code Online (Sandbox Code Playgroud)

  • @Manas您可以在正则表达式的负向后查找部分中指定不匹配的文件扩展名,例如:`^.*(?&lt;!\.(png|jpg))$` (2认同)

mai*_*kel 5

以下正则表达式也处理查询字符串:

redirect: [
    {
        from: '^(\\/[^\\?]*[^\\/])(\\?.*)?$',
        to: '$1/$2',
    },
],
Run Code Online (Sandbox Code Playgroud)