Nuxt.js - URL에 후행 슬래시를 추가합니다.
이 질문은 이전 질문의 기반입니다.
SEO의 이유로 모든 URL을 슬래시로 끝냈으면 합니다.지금까지 이 기능은 nuxt-redirect-module로 동작하고 있습니다.
redirect: [
{
from: '^.*(?<!\/)$',
to: (from, req) => req.url + '/'
}
]
그러면 url이 체크되고,/
없을 경우를 대비해서 마지막에.문제는 URL 끝에 파라미터가 있는 경우입니다.
그래서 지금으로서는, 이 리다이렉트가
https://example.com/folder
로.
https://example.com/folder/
(거동)
하지만 파라메스를 사용하면, 현재는 다음과 같이 동작합니다.
https://example.com/folder?param=true
로.
https://example.com/folder?param=true/
(이것에 의해,/
파라메스 뒤에)
질문.
그렇게 하는 게 더 낫지 않을까?
https://example.com/folder?param=true
로.
https://example.com/folder/?param=true
(이 때문에,/
URL의 말미에 있지만 파라미터 앞에 있음)
잘 부탁드립니다!
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]
}
}
]
첫 번째 regex는 https://regex101.com/r/slHR3L/1 에서 확인하십시오.
마지막 힌트는 @Seybsen님 덕분입니다.
다음은 더 단순할 수 있으며 내가 볼 때 동일한 작업을 수행합니다.
redirect: [
{
from: '^(\\/[^\\?]*[^\\/])(\\?.*)?$',
to: '$1/$2',
},
],
이렇게 썼어요.이 코드는 행 끝에 있는 서명되지 않은 URL ? 및 /을 모두 포착합니다.제 생각에 그것이 충분한 것 같아요.
redirect: [
{
from: '^(?!.*\\?).*(?<!\\/)$',
to: (from, req) => {
return req.url + '/';
}
}
],
언급URL : https://stackoverflow.com/questions/56100693/nuxt-js-add-trailing-slash-to-urls-with-params
'programing' 카테고리의 다른 글
기본 연결된 프로그램으로 파일을 여는 방법 (0) | 2022.12.19 |
---|---|
C 데이터형은 어떻게 "대부분의 컴퓨터에서 직접 지원"됩니까? (0) | 2022.12.19 |
고급 PHP 개발자를 위한 MVC (0) | 2022.12.19 |
도커가 MariaDB 비밀번호를 설정하지 않음 (0) | 2022.12.19 |
PHP는 어레이를 다른 어레이에 추가합니다(array_push 또는 +가 아님). (0) | 2022.12.19 |