本篇文章由: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 的文件路径,刚开始写了几个相对路径,发现都没有效果

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

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

Codeigniter base_url() 返回的怎么是ip地址的更多相关文章

  1. ping 计算机全名,返回的不是IP地址

    今天想看一下机子的IP地址,结果关闭局域防火墙后,在命令行中使用ping 计算机全名,返回的不是IP地址 其实,这也是一种IP地址,IP6地址 原因:默认情况下,win7以上的操作系统,ping 计算 ...

  2. JAVA获取客户端IP地址

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

  3. 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

  4. 【转】一个域名对应多个IP地址,接下来系统是依据什么决定使用哪个IP地址的?

    例如下图所示:nslookup http://www.sina.com.cn返回了多个IP地址,当使用curl通过域名进行访问时,则自动选择了其中一个地址进行访问,这个选择的过程里发生了什么事情? 绝 ...

  5. Java获取IP地址:request.getRemoteAddr()注意

        在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr() ,这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户 ...

  6. Java获取客户端真实IP地址的两种方法

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

  7. API之IP地址查询---权威的IP地址查询接口集合

    原文地址:http://yushine.iteye.com/blog/1717586 推荐实用IP138 http://www.baidu.com/s?wd=IP&rsv_spt=1& ...

  8. Java获取请求客户端的真实IP地址

    整理网友的材料,最后有源码,亲测能解决所有java获取IP真实地址的问题 整理的这里: 1.链接1 2.链接2 JSP里,获取客户端的IP地址的方法是: request.getRemoteAddr() ...

  9. Struts如何获取客户端ip地址

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

随机推荐

  1. MiniGUI ial 移植指南

    MiniGUI ial 移植指南 2.1 ial的定义 ial是一个通用的抽象输入接口,可以输入统一的数据的结构,也就是说在MiniGUI的核心代码里输入的数据的格式是固定的,不管输入设备是鼠标 还是 ...

  2. flume 日志导入elasticsearch

    Flume配置 . flume生成的数据结构 <span style="font-size:18px;">"_index" : "logs ...

  3. 数学图形(1.2)Sin曲线

    相关软件参见:数学图形可视化工具,使用自己定义语法的脚本代码生成数学图形.该软件免费开源.QQ交流群: 367752815 Sin曲线 vertices = x = *PI) to (*PI) y = ...

  4. iOS开发-xCode6(iOS 8)中应用程序图标和启动页面设置

    iOS8中设置应用程序图标跟之前没有什么变化,命名规则不变,不过至于设置启动页面,网上给的方式很多都是模棱两可的,东平西凑总算是把启动页面的图片设置成功了,iOS设置启动图片有两种方式一种是Launc ...

  5. Android动画-补间(Tween)动画

    Android动画的两种方式,其中帧动画上篇文章已经讲了,这次主要讲解的就是补间动画,补间动画就是动画业务场景中常用的旋转,平移,缩放,和渐变效果,帧动画是通过轮播动画实现动画效果,补间动画通过在两个 ...

  6. 【反射】Reflect Class Field Method Constructor

    关于反射 Reflection 面试题,什么是反射(反射的概念)? 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义 ...

  7. 分解大量switch-case分支的两种方法

    项目经过长期多人的维护,所谓人多手杂,出现不少过多过长的switch-case分支,或者多重switch-case嵌套.每每添加功能,我都会紧皱眉头,然后带着罪恶感向已经成百上千行的函数里再添上一个c ...

  8. IOS实现多媒体音频之音乐播放器

    随着智能手机市场越来越活跃,相应的app也变得五彩缤纷,各式各样,让你的app更吸引人多媒体技术不可避免.通过对音频和视频等控制让你的app更加丰富多彩,今天和大家一起研究下基本的音频使用.本文只提供 ...

  9. Spark踩坑记:共享变量

    收录待用,修改转载已取得腾讯云授权 前言 前面总结的几篇spark踩坑博文中,我总结了自己在使用spark过程当中踩过的一些坑和经验.我们知道Spark是多机器集群部署的,分为Driver/Maste ...

  10. JavaScript 之 日常积累

    1. <a>标签"加入收藏",兼容IE,FireFox等 function bookmarksite() { if (window.sidebar) { // Mozi ...