CI 3.1.0 基本网址在打开带有 www.domainname.com 和 domainname.com 的网站时创

  • 本文关键字:com domainname www 网站 CI php codeigniter
  • 更新时间 :
  • 英文 :


这是我定义基本URL的方式:

$config['base_url'] = 'http://royalarcdevelopments.ca';

现在这是一个实时链接,您可以自己测试:

发生的情况是,如果我使用路径http://royalarcdevelopments.ca打开此 URL,royalarcdevelopments.ca它对两者都加载良好!

但是当我使用 URLwww.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.

现在我知道我的基本 URL 没有使用www所以它会向我抛出错误!

我的问题是,我们如何修改base URL以便它接受来自每种路径类型的请求!

一般来说,同一域的 www 和非 www 版本是两个不同的完全限定域。

出于安全原因,某些资源(如特定情况下的字体(违反了 CORS 策略 - 这会导致您收到错误。

一种解决方案是修改 Web 服务器的配置,以便它允许为跨源请求传递字体文件。

更好的解决方案是(也从SEO的角度来看(将其中一个域重定向到另一个域,因此您的网站只有一个"官方"域。这也可以从 Web 服务器的配置甚至 Codeigniter 代码中完成,例如通过一些 pre_controller 钩子。这样,当访问者尝试访问您的辅助域(假设您的特定情况下的 www 版本(时,它会被重定向到您的主域(非 www(,并且 CORS 不再有问题。

尽早重定向:

  • 首先,如果您有权访问 Web 服务器的配置,请在那里实现重定向;
  • 其次,如果使用 Apache 作为 Web 服务器,请在.htaccess文件中实现重定向;
  • 如果上述选项都不可用,请从应用程序代码中执行此操作。

相关内容

最新更新