Apache解决Access-Control-Allow-Origin多域名跨域问题
时间: 2023-07-11 16:55:28 浏览: 1055
Apache可以通过修改httpd.conf或.htaccess文件来解决Access-Control-Allow-Origin多域名跨域问题。
首先,确认你的Apache服务器已启用mod_headers模块。如果没有启用,可以通过在终端输入以下命令来启用:
```
sudo a2enmod headers
```
接下来,在httpd.conf或.htaccess文件中添加以下代码:
```
<IfModule mod_headers.c>
SetEnvIf Origin "http(s)?://(www\.example\.com|www\.example\.net)$" AccessControlAllowOrigin=$0$1
Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
Header add Access-Control-Allow-Methods "GET, POST, OPTIONS, PUT, DELETE"
Header add Access-Control-Allow-Headers "origin, content-type, accept, authorization"
Header add Access-Control-Allow-Credentials "true"
</IfModule>
```
上述代码中,SetEnvIf指令用于匹配允许跨域访问的域名,AccessControlAllowOrigin变量用于存储匹配的结果。Header指令用于添加Access-Control-Allow-Origin、Access-Control-Allow-Methods、Access-Control-Allow-Headers和Access-Control-Allow-Credentials响应头。
需要将上述代码中的www.example.com和www.example.net替换成你允许跨域访问的域名。
最后,重启Apache服务器使配置生效:
```
sudo service apache2 restart
```
阅读全文