如何在Deno Fresh中实现https://www.example.com到https://example.com的重定向?
在Deno Deploy配置www域名重定向到非www域名
目前唯一可行的方式:用Middleware实现
Deno Deploy暂时没有像Vercel那样在控制台直接配置重定向的可视化选项,所以得通过代码层面的中间件来做,但代码非常简单:
在你的项目根目录创建_middleware.ts文件(Deno Deploy会自动识别这个文件并作为全局中间件执行),复制以下代码:
export function middleware(request: Request): Response | undefined { const url = new URL(request.url); // 检测请求域名是否带www前缀 if (url.hostname.startsWith('www.')) { // 去掉www前缀,保留原协议、路径和查询参数 url.hostname = url.hostname.slice(4); // 返回301永久重定向(利于SEO),要临时重定向的话改成302 return Response.redirect(url.toString(), 301); } // 非www域名的请求直接放行 }
注意点:
- 要先在Deno Deploy控制台把
www.example.com和example.com两个域名都添加并完成验证,确保都能正常解析。 - 301是永久重定向,适合长期固定的域名跳转需求;如果只是临时调整,换成302状态码即可。
内容的提问来源于stack exchange,提问作者hcode
相关产品推荐
相关产品推荐

