我想配置apache以允许来自多个域但不是所有域的XMLHttpRequests。
这有效:
Header set Access-Control-Allow-Origin "*"
但是它不安全,我想允许我指定的域名,所以经过一些谷歌搜索我得到了这个:
Header set Access-Control-Allow-Origin "http://domain1.com http://domain2.com"
但这只能获得第一个域名,第二个域名不被允许。如何正确指定多个域?
答案 0 :(得分:39)
您可以在.htaccess文件或vhost文件中使用SetEnvIf(在“目录”组内):
<IfModule mod_headers.c>
SetEnvIfNoCase Origin "https?://(www\.)?(mydomain\.com|mydomain2\.com)(:\d+)?$" AccessControlAllowOrigin=$0
Header set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
</IfModule>
使用此代码,您可以从
进行访问您可以添加以|分隔的多个域或者您可以使用regexp配置不同的子域或模式。
答案 1 :(得分:-1)
Header always append Access-Control-Allow-Origin: "http://domain1.com"
Header always append Access-Control-Allow-Origin: "http://domain2.com"