Next.js配置PDF请求重定向遇捕获组错误,求解决方案
Next.js重定向PDF请求报错的解决方法
错误原因
Next.js的重定向路由规则中,source字段不允许使用正则捕获组(即(...)形式的捕获式语法),你原代码里的/:file(\.(pdf)$)包含了捕获组,因此触发解析错误。
解决方案
以下两种写法都可以实现需求,根据你的场景选择:
方案1:通配符匹配任意路径下的PDF
适合需要匹配所有子目录中PDF文件的场景(比如/docs/report.pdf或/resume.pdf都能被匹配):
async redirects() { return [ { source: '/:path*.pdf', destination: 'https://some-other-website.com/:path*.pdf', permanent: false } ]; }
方案2:参数正则约束(无捕获组)
如果只需匹配根目录下的PDF,或者需要更精确的参数格式约束:
async redirects() { return [ { source: '/:file(.*\\.pdf)', destination: 'https://some-other-website.com/:file', permanent: false } ]; }
注意事项
- JavaScript字符串中反斜杠需要转义,所以正则里的
.要写成\\.; permanent: false对应临时重定向(HTTP 302),如果需要永久重定向(HTTP 301),可以改为true。
内容的提问来源于stack exchange,提问作者NTP
相关产品推荐
相关产品推荐

