【问题标题】:Codeigniter subdomains and WAMPCodeigniter 子域和 WAMP
【发布时间】:2011-09-28 09:33:46
【问题描述】:

我正在尝试做某事 like this 。 基本上我想:

  • 当您访问 domain.com 时,它应该加载:domain.com/frontend
  • 当您访问 userlogin.domain.com 时,它应该加载:domain.com/backend/userlogin

nettus 展示了如何在 wamp 上执行此操作,但每种情况使用不同的目录。 例如,如果您访问 domain.com,则在 apache virtualhosts 中设置的文件夹为:c:/folder_of_frontend,如果您访问 userlogin.domain.com,则该文件夹设置为 c:/folder_of_backend

我想使用相同的 CI 系统和应用程序文件夹。我将改为使用不同的控制器来处理前端和后端。

谢谢

【问题讨论】:

  • 通配符子域指向与您的实际域相同的 /code/path 并带有一些重写技巧。我正试图弄清楚同样的事情,这就是我所得到的。
  • 嘿@dogmatic69。你能发布你到目前为止所拥有的吗?我不想重定向,我想路由。谢谢。
  • 好吧,正是你链接的那个教程。除了两个虚拟主机都去同一个地方。我也没有说重定向,重写是将请求“路由”到另一个地方。

标签: php apache codeigniter mod-rewrite wamp


【解决方案1】:

您可以设置一个由 $_SERVER['HTTP_HOST'] 确定的常量,然后根据该常量的值切换或设置其他变量。

$subdomain = str_replace(".mydomain.com","",$_SERVER['HTTP_HOST']);
if (!empty($subdomain) && $subdomain != 'www')
{
    define('SUBDOMAIN',$subdomain);
}
else
{
    define('SUBDOMAIN',NULL);
}

然后,您可以在应用程序的其他位置检查 SUBDOMAIN 的值并执行适当的操作。

//edit.. 我通常将上面的内容放在 /index.php 但 /application/config/constants.php 也可能是一个好地方。想想我刚刚在那里养成了一个坏习惯。

【讨论】:

  • 在使用任何 php 之前,我需要重写 url 以使其工作。我认为这里的第一步是使 .htaccess 工作
  • 毕竟它确实有效。我检查你的常量,然后在路由文件中加载我想要的控制器。到目前为止,没有 .htaccess 诡计。谢谢。
  • 是的,不需要任何 .htaccess。只需通配主机中的子域,将所有内容指向相同的 CI 安装,然后执行上述操作。我过去使用过类似的方法从同一个代码库运行多个站点。根据域或子域选择不同的数据库或任何需要的数据库。
猜你喜欢
  • 2015-12-01
  • 2013-02-27
  • 1970-01-01
  • 2014-01-24
  • 2012-03-25
  • 2011-06-05
  • 2013-02-22
  • 2013-04-04
  • 2014-03-08
相关资源
最近更新 更多