我在opencart2x中使用通配符子域,并在头文件中使用此无访问控制允许原点

时间:2016-01-27 21:04:01

标签: php .htaccess opencart

并不明白如何解决这个问题,web服务器 - apache ......

例如: link.com - 一切都很好 sub.link.com - 不好,在控制台错误中

来自“link.com”的字体已被跨源资源共享策略阻止加载:请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许发送“sub.link.com”。

我尝试添加.htaccess

<IfModule mod_headers.c>
<FilesMatch "\.(svg|ttf|otf|eot|woff|woff2|css)$">
    Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Credentials true
</FilesMatch>
</IfModule>

删除后添加此

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*" 
</IfModule>

并且没有.htaccess,我尝试添加index.php

header("Access-Control-Allow-Origin: *");

但不工作!我认为这个问题是因为CSS fots文件使用像

...
src:url('icons/fonts/journal-icons.eot');
src:url('icons/fonts/journal-icons.eot?#iefix') format('embedded-opentype'),
...

但我不明白我需要做些什么才能解决这个问题? (看起来类似的问题,但没有帮助)

1 个答案:

答案 0 :(得分:0)

Chrome javascript控制台中有一条非常明确的错误消息:

Font from origin 'http://www.mss.partneris.net' has been blocked from loading
by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin'
header is present on the requested resource. Origin
'http://www.test.mss.partneris.net' is therefore not allowed access.

添加:

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*" 
</IfModule>

http://www.mss.partneris.net 域的apache配置,重新启动apache,然后在浏览器中转到http://www.mss.partneris.net/catalog/view/theme/journal2/css/icons/fonts/journal-icons.woff或使用curl,看到它有Access-Control-Allow-Origin: *响应标题。如果是这样,请在浏览器中再试一次,希望一切顺利。