我的网站同时支持http和https协议。但是,使用.htaccess文件中的以下代码,我只能设置一个域来允许CORS请求:
Header set Access-Control-Allow-Origin: http://example.com
我想在我的网站的http和https版本(不仅仅是“*”)中允许使用CORS,并尝试使用以下解决方案: Access-Control-Allow-Origin Multiple Origin Domains?
但问题是所有解决方案都依赖于请求中的Origin
标头,该标头可能不存在且也不安全。 (任何人都可以在他们的请求中放置原始标题)
我想知道请求是否已通过https提供,并使用此信息设置正确的CORS标头。像这样:
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请求?
答案 0 :(得分:4)
您是否尝试过使用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