【问题标题】:Custom domains in CodeIgniter web app?CodeIgniter Web 应用程序中的自定义域?
【发布时间】:2011-12-01 19:30:52
【问题描述】:

我正在使用 CodeIgniter 构建我的第一个网络应用程序。出于演示目的,用户可以通过简单地使用他们的 Facebook 用户名作为参数来预览他们的网站(使用来自 Graph API 的公共数据)。因此他们使用以下方式访问数据:

myurl.com/controller/function/**username**

但是,我希望将来用户能够使用他们的自定义域来查看类似的页面。

我已经阅读了有关该主题的内容,但它们似乎不是一个公认的解决方案。有人说我需要在.htaccess 中使用mod_rewrite,有人建议使用virtual hosts,有人提到使用$_SERVER 请求重定向用户。似乎有很多建议,但帮助决定的例子并不多。

我很高兴手动设置每个域(即通过手动编辑 .htaccess),但我仍然希望能够使用单个 CodeIgniter 安装。

那么,如何将多个 URL/自定义域指向一个 CodeIgniter URL,以及存在哪些安全隐患?

可能相关link

【问题讨论】:

  • 您询问的是子域 (http://username.example.com/) 还是多个 URL (http://user-purchased-domain.com/)?

标签: php codeigniter mod-rewrite multiple-domains virtual-hosts


【解决方案1】:

你说的是哪个版本的 CodeIgniter?

说实话,我可能会走虚拟主机路线。你可以尝试设置一个通配符虚拟主机,这样如果你的服务器上没有设置被调用的域,它将默认为 CodeIgniter 应用程序..

这将是动态的,因为您所做的只是为您的客户端域设置 DNS 以指向您的服务器,并且他们都将获得 CI 应用程序的一个实例。但这并不安全。

我建议在主 CodeIgniter 应用程序启动之前将所有域发送到一个 CI 函数。然后,该中介将对数据库表进行一些查找,以查看调用的域是否是允许的域。如果没有重定向,则加载主 CI 应用程序。

这应该适用于 CI 2.x,因为它可以自动检测域,因此您无需在配置文件中进行硬编码。

对于 CI 1.6.x,您必须将应用程序 URL 硬编码到配置文件中。如果这是您的版本,您可能需要升级或修改应用程序。

HTH :)

【讨论】:

  • 绝对是第 2 版。感谢您的回复。正如您所提到的,是什么让这不安全?我试图阻止发生的事情是什么?
  • 好吧,如果您不进行检查,其他人可能会将他们的域指向您的服务。然后,他们可以在他们的域名下显示您的应用程序。或者也许这就是您正在寻找的东西。我的印象是您想要这样做,但也想验证显示您的应用的域??
  • 你猜对了,我只是不确定安全问题到底是什么。
  • 可能还有更多......你要试试这个吗?如果您想测试,我可以提供另一个域..
猜你喜欢
  • 2014-02-11
  • 1970-01-01
  • 2010-10-17
  • 1970-01-01
  • 2022-08-16
  • 1970-01-01
  • 1970-01-01
  • 2011-01-18
  • 1970-01-01
相关资源
最近更新 更多