【问题标题】:How to create dynamic sub-domain in codeigniter using htaccess?如何使用 htaccess 在 codeigniter 中创建动态子域?
【发布时间】:2015-10-09 00:46:22
【问题描述】:

如何在codeigniter中使用htaccess创建动态子域?

假设我有一个示例链接:

www.example.com/page/getpage/user1.

此链接显示“user1”的所有详细信息,我想将其更改为“user1.example.com”

我的项目使用 htaccess 为每个用户创建子域。例如 user1.example.com 使用 .htaccess 重定向到 www.example.com/getuser/user1。我的问题是 codeigniter 在发布后创建新会话

使用 .htaccess 重定向我得到的是服务器 IP 地址而不是用户 IP 地址。我如何获得用户 IP 地址而不是服务器 IP。我正在使用 codeigniter3.0

对此的任何帮助表示赞赏。
谢谢你

【问题讨论】:

    标签: apache .htaccess subdomain php


    【解决方案1】:

    您现有的代码应该已经足够了。我建议简单地调用 var_dump($_SERVER) 来查看哪些字段对您的应用程序有帮助。

    特别是 $_SERVER['HTTP_HOST'] 会很有帮助。试试这个:

    $parts = explode('.', $_SERVER['HTTP_HOST']);
    
    if(count($parts) != 3){
        die('this application requires a subdomain');
    }
    
    $this->subdomain = array_shift($parts);
    

    如果您将其添加到基本控制器,然后从基本控制器扩展您的所有控制器,您将可以访问所有控制器中的该子域变量。

    【讨论】:

    • 我的项目使用 htaccess 为每个用户创建子域。例如 user1.example.com 使用 .htaccess 重定向到 www.example.com/getuser/user1。我的问题是codeigniter在发布后创建新会话使用.htaccess重定向我得到的服务器IP地址不是用户IP地址。我如何获取用户 ip 地址而不是服务器 ip
    • 我建议不要重定向,也不要在服务器级别处理这个问题。只需使用 PHP 检查子域并使用子域来获取要显示的帐户特定信息。
    • 不,你误会了。在您的 CodeIgnitor 控制器中,只需 var_dump($_SERVER) 并查看输出。在“HTTP_HOST”键中,您应该看到您的域名,包括子域。编写一些提取子域的代码(如我上面的示例),然后将此子域传递给您的模型以获取您需要的任何数据,然后加载您的视图。这样,无论您托管的子域数量如何,您最终都会得到一个相同的代码库。如果您必须为每个新的子域编写任何额外的代码或服务器配置,那就有问题了。
    • 感谢指导
    • 不客气。既然这回答了您的问题,请您选择它作为答案吗?
    猜你喜欢
    • 2012-04-01
    • 2012-12-17
    • 2016-07-07
    • 2012-04-01
    • 2016-04-14
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多