我当前的 Nginx 配置与此 URL 配合良好: https://myhostname.com
但我为同一台服务器创建了不同的别名,比如 myhostname1
现在当我尝试访问该网址时
它会抛出错误
XMLHttpRequest无法加载 https://主机名?pingpong=2831234.“Access-Control-Allow-Origin”标头具有值“https://myhostname.com' 与提供的原点不相等。原点 'https://myhostname1.com' 因此不允许访问。
主机 myhostname 和 myhostname1 都指向相同的 IP 和 DNS 条目。
我尝试将此行添加到我的 nginx 配置中,但似乎不起作用
location / {
add_header 'Access-Control-Allow-Origin' '*';
..........
但似乎还是不起作用。有人能帮我解决我的问题吗?
答案1
这对我有用
server {
listen 80;
server_name myhostname myhostname1;
access_log /some/path/access.log;
error_log /some/path/error.log;
root /some/path/;
location / {
if ($http_origin ~* (https?://myhostname|https?://myhostname1)) {
add_header 'Access-Control-Allow-Origin' "$http_origin";
}
#
autoindex on;
index index.html index.htm index.php ;
}
}
更多文档和示例这里。
像这样的正则表达式可能适用于所有myhostnameXXX
XXX 为数字的情况(已编辑)
if ($http_origin ~* (https?:myhostname([0-9]+)?)) {
add_header 'Access-Control-Allow-Origin' "$http_origin";
}
另请注意,两个域均由同一块提供服务:
server_name myhostname myhostname1;