この質問は 以前の質問に基づいています
SEOの理由で、すべてのURLの末尾をスラッシュにしたい。これまでのところ、この関数は nuxt-redirect-module で動作しています
redirect: [
{
from: '^.*(?<!\/)$',
to: (from, req) => req.url + '/'
}
]
これにより、URLがチェックされ、ない場合は末尾に/
が追加されます。問題は、URLの最後にパラメータがある場合です。
だから今、これはリダイレクトします
https://example.com/folder
〜
https://example.com/folder/
(意図された動作)
しかしwith params、今のところ次のように機能します。
https://example.com/folder?param=true
〜
https://example.com/folder?param=true/
(/
paramsの後を追加します)
[〜#〜]質問[〜#〜]
代わりにリダイレクトするようにする方法です
https://example.com/folder?param=true
〜
https://example.com/folder/?param=true
(URLの最後に/
を追加しますが、paramsの前に)
前もって感謝します!
redirect: [
{
from: '^[\\w\\.\\/]*(?<!\\/)(\\?.*\\=.*)*$',
to: (from, req) => {
const matches = req.url.match(/^.*(\?.*)$/)
if (matches.length > 1) {
return matches[0].replace(matches[1], '') + '/' + matches[1]
}
return matches[0]
}
}
]
ここで最初の正規表現を確認してください: https://regex101.com/r/slHR3L/1
最後のヒントを提供してくれた@Seybsenに感謝します:)
次の方が簡単かもしれませんが、私が見る限り同じです:
redirect: [
{
from: '^(\\/[^\\?]*[^\\/])(\\?.*)?$',
to: '$1/$2',
},
],