【问题标题】:Nuxt.js - force trailing slash at the end of all urlsNuxt.js - 在所有网址的末尾强制使用斜杠
【发布时间】:2019-06-18 04:06:07
【问题描述】:

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

我尝试过使用nuxt-redirect-module,添加斜杠后它会起作用,但随后会导致无限重定向

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

欢迎任何见解。谢谢!

【问题讨论】:

    标签: vue.js nuxt.js


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 这正是我所需要的。谢谢!
      • 如何“不匹配”以文件名结尾的路由,例如 .jpg 等?
      • @Manas 您可以在正则表达式的否定后向部分中指定不匹配的文件扩展名,例如:^.*(?&lt;!\.(png|jpg))$
      • 我已经为与此相关的问题设置了赏金。你可以在stackoverflow.com/questions/54346345/…查看它
      猜你喜欢
      • 1970-01-01
      • 2011-12-08
      • 2011-08-21
      • 2022-01-13
      • 2013-01-18
      • 2011-07-02
      • 2021-02-12
      • 1970-01-01
      • 2010-11-25
      相关资源
      最近更新 更多