概览Edge Middleware 能在请求进入应用前进行分流与重写。结合 `accept-language` 与随机分组,可实现国际化路由选择与 A/B 实验治理,并通过 Cookie 保持会话一致性。middleware.tsimport { NextResponse } from 'next/server' import type { NextRequest } from 'next/server' export function middleware(req: NextRequest) { const url = req.nextUrl.clone() const lang = req.headers.get('accept-language') || '' const locale = lang.startsWith('zh') ? 'zh' : 'en' const ab = req.cookies.get('ab')?.value || (Math.random() < 0.5 ? 'A' : 'B') if (!req.cookies.get('ab')) { const res = NextResponse.next() res.cookies.set('ab', ab, { path: '/' }) return res } if (url.pathname === '/') { url.pathname = `/${locale}/${ab}` return NextResponse.rewrite(url) } return NextResponse.next() } export const config = { matcher: ['/((?!_next|api|static).*)'] } 治理要点在边缘分流减少回源,保障低延迟与一致性。使用 Cookie 固定分组,确保用户跨页体验一致。与实验平台或日志系统结合,记录分组与转化指标。验证与指标浏览器:现代浏览器;边缘环境兼容Next.js:15.0+;Edge Runtime:稳定分流正确、重写可靠;国际化选择与 A/B 实验命中率稳定

发表评论 取消回复