这是我定义基本网址的方式:
$config['base_url'] = 'http://royalarcdevelopments.ca';
现在这是一个实时链接,您可以自己测试一下:
如果我使用路径http://royalarcdevelopments.ca
,royalarcdevelopments.ca
打开此网址,它会为两者加载正常!
但是当我使用网址www.royalarcdevelopments.ca
加载它时,我收到此错误:
(index):1 Access to Font at 'http://royalarcdevelopments.ca/fonts/Poppins-Medium.ttf' from origin 'http://www.royalarcdevelopments.ca' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://www.royalarcdevelopments.ca' is therefore not allowed access.
现在我知道我的基本网址没有使用www
所以它会向我抛出错误!
我的问题是,我们如何修改base URL
以便它接受来自每种路径类型的请求!
答案 0 :(得分:1)
一般来说,同一域的www和非www版本是两个不同的完全限定域。
出于安全原因,某些资源(如您特定情况下的字体)违反了CORS政策 - 这会导致您收到的错误。
一种解决方案是修改您的网络服务器配置,以便为交叉原始请求提供字体文件。
更好的解决方案(也是从SEO的角度来看)将其中一个域重定向到另一个域,因此您只有一个"官方"您网站的域名。这也可以通过Web服务器的配置甚至是Codeigniter代码完成,例如通过一些pre_controller挂钩。这样,当访问者尝试访问您的辅助域名时(让您在特定情况下说出www版本),它会被重定向到您的主域名(非www),并且CORS也不会有任何问题。
尽早重定向:
.htaccess
文件中实现重定向;