允许对http和https的跨源请求

Leo*_*eoA 8 apache .htaccess https cors

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

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

我想允许CORS用于我的站点的http和https版本(不仅仅是"*")并尝试了解决方案: Access-Control-Allow-Origin多个源域?

但问题是所有解决方案都依赖于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
Run Code Online (Sandbox Code Playgroud)

我如何才能发现这是一个https请求?

adv*_*ncd 4

您尝试过使用HTTPS变量吗?

"on"它将针对所有 https 请求设置为。您的 .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
Run Code Online (Sandbox Code Playgroud)

  • 如果从 php 文件以编程方式设置标头会怎样? (5认同)