Kul*_*eep 31 apache .htaccess http cross-domain cors
我想为跨域访问头配置apache.我已经尝试了多个组合,如论坛上的线程数量建议.但它不适合我.
方式,我试过:
1)在不同的行上指定域,如下所示Header set:
Header set Access-Control-Allow-Origin "example1.com"
Header set Access-Control-Allow-Origin "example2.com"
Header set Access-Control-Allow-Origin: "example3.com"
Run Code Online (Sandbox Code Playgroud)
通过这种设置,它只选择最后一个并忽略其余部分.
2)在不同的行上指定域,如下所示Header add:
Header add Access-Control-Allow-Origin "example1.com"
Header add Access-Control-Allow-Origin "example2.com"
Header add Access-Control-Allow-Origin: "example3.com"
Run Code Online (Sandbox Code Playgroud)
有了这个,它在标题中显示了所有三个域,但是在Firefox上没有获取字体.
3.)尝试使用SetEnvIf,但它再次无效:
SetEnvIf Origin "http(s)?://(www\.)?(mydomain.com|mydomain2.com)$" AccessControlAllowOrigin=$0$1
Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
Run Code Online (Sandbox Code Playgroud)
最后使用"*",但我不想使用它.
请帮忙.
Geo*_*rge 41
对于3个域,在.htaccess中:
<IfModule mod_headers.c>
SetEnvIf Origin "http(s)?://(www\.)?(domain1.org|domain2.com|domain3.net)$" AccessControlAllowOrigin=$0$1
Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
Header set Access-Control-Allow-Credentials true
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我试过这个,它对我有用.如果它不适合你,请告诉我.
Jon*_*Jon 17
除非我误解了手册,否则它应该是:
Header always append Access-Control-Allow-Origin: "example1.com"
Header always append Access-Control-Allow-Origin: "example2.com"
Header always append Access-Control-Allow-Origin: "example3.com"
Run Code Online (Sandbox Code Playgroud)
手册指出set和add操作的行为方式如下:
set: "响应标头已设置,用此名称替换任何以前的标头"
添加: "...这可能导致两个(或更多)标题具有相同的名称.这可能会导致无法预料的后果......"