0

我有一个应用引擎网站,我试图要求 https 并将所有流量重定向到 https。但是,唯一重定向到 https 的流量是域 www.hotplate.com,而不是其他任何东西,甚至是 hotplate.com、www.hotplate.com/deck 等变体。我能够访问 https 的虽然这些网址是手动的。下面是我的 app.yaml。我检查以确保有 SSL 证书并且似乎有。任何帮助深表感谢。谢谢你。

运行时:nodejs 环境:flex

处理程序:- url:.* 安全:总是 redirect_http_response_code:301 脚本:自动

自动缩放:min_num_instances:1 cpu_utilization:target_utilization:0.9

资源:cpu:0.1 memory_gb:0.9 disk_size_gb:10

4

2 回答 2

0

对于 App Engine Flexible,您需要检测用户已使用 HTTP 到达并将用户重定向到 HTTPS。

您的配置中的此部分适用于 App Engine Standard,App Engine Flexible 不支持:

secure: always
redirect_http_response_code: 301 

有很多方法可以直接使用reactjs和手动进行。您还需要考虑您的应用程序是面向 Internet 还是位于负载均衡器后面的站点。

如果您的应用程序站点位于负载均衡器后面,那么您需要处理X-Forwarded-Proto协议标头以确定用户使用哪个协议 (HTTP/HTTPS) 连接到负载均衡器。

确切的方法取决于您的问题中未提供的架构和源代码。

例如,此代码段将处理X-Forwarded-ProtoHTTP 标头,这意味着您的应用程序必须位于负载均衡器或代理之后:

  if (req.headers['x-forwarded-proto'] != 'https') {
    res.redirect(status, 'https://' + req.hostname + req.originalUrl);
  }

这是另一个片段:

app.use(function(request, response){
  if(!request.secure){
    response.redirect("https://" + request.headers.host + request.url);
  }
});
于 2019-12-04T19:54:32.110 回答
0

您可能需要按如下方式更新 url 元素:...

handlers:
- url: /.*
  script: auto
  secure: always
  redirect_http_response_code: 301
于 2019-12-04T19:21:20.647 回答