从codeigniter中的主域和子域获取base_url

时间:2012-07-20 03:50:09

标签: php codeigniter url

我的项目有两个申请

  1. site.com
  2. api.site.com
  3. 这是我的配置

    $config['base_url'] = 'http://' . $_SERVER['HTTP_HOST'] . '/';
    

    如果我运行 site.com ,如何获取 api.site.com 的base_url或site_url?

    如果我运行 api.site.com ,如何获取 site.com 的base_url或site_url?

3 个答案:

答案 0 :(得分:2)

如果您对base_url使用以下代码,那么您无需在任何服务器以及任何域子域IP地址中更改任何可以使用此代码的内容

$config['base_url'] = (isset($_SERVER['HTTPS']) ? "https://" : "http://") . 
  $_SERVER['HTTP_HOST'] . preg_replace('@/+$@', '', dirname($_SERVER['SCRIPT_NAME'])) . '/';

答案 1 :(得分:0)

我希望site.com和api.site.com会有不同的内容。最好在每个根目录中有两个应用程序文件夹和两个不同的index.php文件。您可以通过更新index.php文件中的系统路径来共享相同的系统文件。

答案 2 :(得分:-1)

没有这样的功能来以您的方式检索URL。你需要手动完成。在base_helper.php目录中创建一个名为helpers的帮助程序并编写此代码。

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

if (!function_exists('url')) {

    function url($param = TRUE)
    {
        if ($param) {
            return 'http://site.com/';
        }
        return 'http://api.site.com/';
    }

}

您可以在您希望的控制器/视图中调用此帮助程序。使用truefalse参数获取主域名或子域名。

$this->load->helper('base');
echo url();
echo "\n";
echo url(false);

打印

http://site.com/
http://api.site.com/

希望这会对你有所帮助。谢谢!!