【问题标题】:Routing, Sub-domain Issue路由、子域问题
【发布时间】:2017-06-23 13:54:18
【问题描述】:

我们的客户有一个类似的网站

www.example.com

基于 codeigniter 构建。还有

www.example.com/some_user_name 

转到 routes.php 并重定向到

www.example.com/organisation/home/some_user_id

现在客户想要

www.some_user_name.com 

充当 www.example.com/some_user_name

所以我们拒绝了他并建议使用子域

some_user_name.example.com

但是通过godaddy服务器集成 它推荐实际上不存在的 Document Root。 所以我们无法同时提供https://some_user_name.comhttps://some_user_name.example.com。请帮忙!

【问题讨论】:

  • 无法创建与用户名相同的域名...如果可用,则转移该服务器上连接到 www.some_user_name.com 的所有内容。为此,您必须使用另一个域(名称:user_name.com,如果可用)和托管

标签: php .htaccess codeigniter routing


【解决方案1】:

解决方案1:

要获取 some_user_name.example.com,您需要从面板中添加 A 条目。如果您使用的是 CPANEL,您可以转到 dns 区域编辑器并添加 A 记录,并在路径字段中指定文件夹名称。我不确定如何在 Godaddy 面板中添加条目,但下面的链接会对您有所帮助。 https://in.godaddy.com/help/add-a-subdomain-20047

解决方案 2:

如果您使用 CodeIgniter PHP 框架,请转到 application/config/routes.php

switch ( $_SERVER['HTTP_HOST'] ) {
    case 'some_username.example.com':
        $route['default_controller'] = "some_username";
    break;
    case 'other_username.mysite.com':
        $route['default_controller'] = "other_username";
    default:
        // The list of your $routes lines at is was...
    break;
}

只需在路由文件中指定具有特定控制器名称的子域即可。

我认为第二种解决方案会对您有更多帮助。如果您有解决方案,请接受我的回答。

问候

【讨论】:

  • 你的解决方案是我认为离我很近,我必须做 case 'some.example.com' 然后 $x = explode(".", $_SERVER['HTTP_HOST']); $route['default'] = 'org/home/'.$x[0] ????
  • 为什么要使用explode?如果您的 url 结构像 some_username.example.com ,那么您需要像上面那样尝试。 $route['default'] 你需要指定控制器名称。
  • 但是没有像 some_username 这样的控制器,我必须检查数据库并且必须获取相应的 id
  • 你必须在那里指定你自己的控制器名称。用 some_username 替换您自己的控制器名称
猜你喜欢
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-30
  • 2011-09-28
  • 1970-01-01
  • 2011-07-18
相关资源
最近更新 更多