允许对 http 和 https 的跨源请求

Allowing cross origin requests for http and https

我的网站同时支持 http 和 https 协议。但是在 .htaccess 文件中使用下面的代码,我只能设置一个域以允许 CORS 请求:

Header set Access-Control-Allow-Origin: http://example.com

我想为我网站的 http 和 https 版本(不仅仅是“*”)允许 CORS,并尝试了这里的解决方案: Access-Control-Allow-Origin Multiple Origin Domains?

但问题是所有解决方案都依赖于请求中的Origin header,这可能不存在,也不安全。 (任何人都可以在他们的请求中输入来源 header)

我想知道请求是否已通过 https 提供,并使用此信息设置正确的 CORS header。像这样:

SetEnvIf servedOverHttps httpsOrigin=true
Header set Access-Control-Allow-Origin: https://example.me env=httpsOrigin

SetEnvIf notServedOverHttps httpOrigin=true
Header set Access-Control-Allow-Origin: http://example.me env=httpOrigin

我怎么知道这是一个 https 请求?

您尝试过使用 HTTPS 变量吗?

所有 https 请求都将设置为 "on"。 您的 .htaccess 应如下所示

Header set Access-Control-Allow-Origin: http://example.com             #default
Header set Access-Control-Allow-Origin: https://example.com env=HTTPS   #override if https