You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vercel Rewrites中基于来源自定义URL目标?解决代理重写时目标URL附加星号的问题

解决Vercel Rewrites代理时目标URL末尾带*的问题

我来帮你搞定这个Vercel Rewrites的代理配置问题~你遇到的核心问题是路径参数的语法使用错误,导致Vercel把通配符*当成了目标URL的一部分,从而引发错误。

错误原因分析

你原来的配置里,destination写了:path*,但Vercel的路径参数规则中,*只是source里用来匹配任意后续路径的修饰符,变量本身的名称是path。当你在destination里写:path*时,Vercel会把*当作字面量附加到目标URL末尾,自然会导致无效的URL。

正确的配置方案

这里有两种靠谱的解决方式,你可以根据需求选择:

方案1:修正路径参数的使用

只需要把destination里的:path*改成:path即可,因为source里的:path*已经完整捕获了/proxy/之后的所有内容:

"rewrites": [
  {
    "source": "/proxy/:path*",
    "destination": "https://:path"
  }
]

这样当用户访问example.com/proxy/google.com/search?q=hello时,会正确重写代理到https://google.com/search?q=hello。

方案2:使用正则捕获组(更灵活)

如果你需要更精准的路径匹配控制,可以用正则表达式作为source,通过捕获组$1来获取目标地址:

"rewrites": [
  {
    "source": "/proxy/(.*)",
    "destination": "https://$1"
  }
]

这种方式和方案1效果一致,但正则可以让你轻松添加域名白名单,避免被滥用,比如只允许代理特定域名:

"rewrites": [
  {
    "source": "/proxy/(google.com|github.com)/(.*)",
    "destination": "https://$1/$2"
  }
]

额外注意事项

  • Vercel的Rewrites代理是服务器端代理,所以前端不会遇到CORS问题,因为请求是从Vercel服务器发起的。
  • 建议添加域名限制,防止恶意用户利用你的代理访问违规网站,避免合规风险。

内容的提问来源于stack exchange,提问作者mapple

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 13:24:08