允许对 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
我的网站同时支持 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