我想将 Apache 配置为允许来自多个域(但不是所有域)的 XMLHttpRequest。
这有效:
Header set Access-Control-Allow-Origin "*"
但这是不安全的,我想允许我指定的域,所以经过一番谷歌搜索后我得到了这个:
Header set Access-Control-Allow-Origin "http://domain1.example http://domain2.example"
但这仅选取第一个域,不允许使用第二个域。如何正确指定多个域?
您可以使用SetEnvIf
在你的.htaccess
文件或虚拟主机文件中(在“目录”组内):
<IfModule mod_headers.c>
SetEnvIfNoCase Origin "https?://(www\.)?(mydomain\.example|mydomain2\.example)(:\d+)?$" AccessControlAllowOrigin=$0
Header set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
</IfModule>
使用此代码,您可以允许访问
-
mydomain.example
and mydomain2.example
- 带或不带“www”。在前
- 有或没有端口号
- HTTP 或 HTTPS
您可以添加多个域,并用 | 分隔。或者您可以使用正则表达式来配置不同的子域或模式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)