• Codeigniter base_url() 返回的怎么是ip地址


    本篇文章由:http://xinpure.com/codeigniter-base-url-to-return-what-is-an-ip-address/

    简单说说情况

    虽然也是有一段时间没有用过 Codeigniter 了,对于这个框架也算是有些了解了

    通常都是用这个 PHP 框架写写网站,而 base_url() 也是比较常用的函数了

    可是最近在写一个网站时,查看源代码发现,在使用了 base_url() 的链接都是 IP 地址

    看到这个,顿时有点错愕。。。

    CI 3.X 版本之前也是使用过的,base_url() 也都是正常的返回域名链接

    分析问题

    看到这种情况,因为在这之前也使用过 CI 3.X 版本,所以开始没想到是版本更新的原因

    当时就觉得是服务器配置的有问题,然后经过一番查看,发现并不是。。。

    CI 框架几乎都是零配置使用的,所以这个也跳过了

    最后,只能 Google 了

    当找到这篇文章之后,我不经陷(瞬)入(间)沉(蒙)思(逼)。。。

    就是这篇 CI 3.X 的更新日志:

    Upgrading from 3.0.2 to 3.0.3

    问题所在

    Make sure your ‘base_url’ config value is not empty

    CI 3.0.3 之后,$config['base_url'] 不能再配置为空了,必须设置一个需要的值

    那么问题又来了,如果是多域名或者同时需要 http 和 https 两种协议的话,又该如何配置呢?

    remember that application/config/config.php is still a PHP script

    看到这句,是否有一种豁然开朗的感觉呢

    这就意味着,写个判断就可以了。

    更新日志里,也提供了一个 Demo:

    $allowed_domains = array('domain1.tld', 'domain2.tld');
    $default_domain  = 'domain1.tld';
    
    if (in_array($_SERVER['HTTP_HOST'], $allowed_domains, TRUE))
    {
            $domain = $_SERVER['HTTP_HOST'];
    }
    else
    {
            $domain = $default_domain;
    }
    
    if ( ! empty($_SERVER['HTTPS']))
    {
            $config['base_url'] = 'https://'.$domain;
    }
    else
    {
            $config['base_url'] = 'http://'.$domain;
    }

    根据自身需求修改即可

    总结

    从这个问题发现,自己思考问题方式不对

    不是说以前没问题的部分,现在一样没问题,至少要知道相应的版本是不一样的

    类似于与 CI 本身框架相关的问题,都应该先查看相应配置,如果使用的版本不一致,可以查看更新日志

    不过一般版本更新过的地方,在 config.php 文件里,都会特别强调配置规则

    记得之前也遇到过类似的问题,就是 CI 从 2.X 更新到 3.X 的时候,Session 默认是以 files 的形式存储的

    所以得配置 Session 的文件路径,刚开始写了几个相对路径,发现都没有效果

    最后也是搜索到了文档,然后查看到配置文件才知道只能使用绝对路径

    这个是自身需要改进的地方

  • 相关阅读:
    恶意代码检测--已看梳理
    tips
    十大排序
    python使用记录
    Matlab用figure;subplot后合并子图
    利用python的docx模块处理word和WPS的docx格式文件
    论文笔记(FCN网络,语义分割):Fully Convolutional Networks for Semantic Segmentation
    论文笔记:SoundNet: Learning Sound Representations from Unlabeled Video
    Winner-Take-All Autoencoders ( 赢者通吃自编码器)
    机器学习优化过程中的各种梯度下降方法(SGD,AdaGrad,RMSprop,AdaDelta,Adam,Momentum,Nesterov)
  • 原文地址:https://www.cnblogs.com/xinpureZhu/p/5554341.html
Copyright © 2020-2023  润新知