Google Cloud Run域名映射及www/非www、HTTP转HTTPS重定向问题
Google Cloud Run 多域名重定向配置方案
你的三个疑问解答
- 直接给同一容器加
www.example.com域名映射但不做重定向:绝对不可取,搜索引擎会把带www和不带www的域名判定为重复内容页面,直接拉低SEO排名,必须做301永久重定向。 - 仅添加www到example.com的CNAME记录而不配置Cloud Run域名映射:完全行不通,Cloud Run需要明确绑定域名映射才能路由请求到你的服务,这种情况下用户访问
www.example.com只会得到错误页面,根本到不了你的应用。 - HTTP转HTTPS的重定向:必须配置,不管是用Cloud Run自带功能还是应用代码处理,否则HTTP版本的页面会被判定为重复内容,还存在数据传输的安全风险。
实现全量重定向到https://example.com的方案
方案1:利用Cloud Run域名映射自带重定向(推荐,无需改代码)
- 确认主域名
example.com已完成Cloud Run域名映射,且HTTPS配置正常。 - 新增
www.example.com的域名映射:- 登录Google Cloud控制台,进入Cloud Run服务的「域名映射」页面。
- 点击「添加映射」,输入
www.example.com,选择你的目标服务。 - 在配置中开启重定向功能,目标地址设为
https://example.com,重定向类型选「301永久重定向」(对SEO最友好)。
- 配置DNS记录:给
www.example.com添加CNAME记录,指向ghs.google.com(和主域名的DNS配置一致)。 - HTTP转HTTPS:Cloud Run对已绑定的自定义域名会自动处理HTTP到HTTPS的重定向,无需额外配置。
方案2:在应用代码中处理重定向(适合需要自定义逻辑的场景)
如果需要更灵活的重定向规则,可以在应用代码中添加逻辑,以下是Node.js/Express的示例:
app.use((req, res, next) => { // 检测是否是www域名或HTTP协议 const shouldRedirect = req.hostname === 'www.example.com' || req.protocol === 'http'; if (shouldRedirect) { // 重定向到https://example.com,保留原请求路径 const targetUrl = `https://example.com${req.originalUrl}`; return res.redirect(301, targetUrl); } next(); });
- 注意:这种方式需要先完成
www.example.com的Cloud Run域名映射和DNS配置,确保请求能到达你的应用。
内容的提问来源于stack exchange,提问作者kicaj
相关产品推荐
相关产品推荐

