首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码点火器重复base_url()

代码点火器重复base_url()
EN

Stack Overflow用户
提问于 2015-11-17 18:10:34
回答 2查看 3K关注 0票数 5

我对复制base_url的Codeigniter有问题。如果我访问控制器中的索引页,所有url都很好,但是当我访问一个在控制器中不是索引页的页面(在我的例子中是冷却的)时,我会得到类似于这个http://www.mypage.si/www.mypage.si/services/colling的奇怪的重复url。

例如

这是我的服务控制器

代码语言:javascript
复制
class Services extends CI_Controller {

    public function index() {
        $this->load->view('header');
        $this->load->view('main');
        $this->load->view('footer');
    }

    public function cooling()   {
        $this->load->view('header');
        $this->load->view('cooling');
        $this->load->view('footer');
    }
}

我的.htaccess文件

代码语言:javascript
复制
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

Config.php

代码语言:javascript
复制
$config['base_url'] = 'www.mypage.si/';
$config['index_page'] = '';

这是我的HTML

代码语言:javascript
复制
     <li><a href="<?php echo base_url('services/cooling'); ?>">cooling</a></li>
     <!-- results in: http://www.mypage.si/www.mypage.si/services/cooling-->
     <img src="assets/images/logo.png" />
     <!-- results in: http://www.mypage.si/www.mypage.si/assets/images/logo.png -->
     <li><a href="<?php echo base_url()."services/cooling"; ?>">cooling</a></li>
     <!-- results in: http://www.mypage.si/www.mypage.si/services/cooling-->

提前谢谢你!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-17 18:27:19

默认情况下,Codeigniter不会将当前协议添加到基本url中,只需更新即可修复您的问题:

代码语言:javascript
复制
$config['base_url'] = 'www.mypage.si/';

代码语言:javascript
复制
$config['base_url'] = 'http://www.mypage.si/';

如果您希望这是一个高度动态的部分,这就是我目前拥有的基本url,并且它永远不需要更新。

代码语言:javascript
复制
$config['base_url'] = "http".((isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS'])) ? "s" : "")."://".$_SERVER['HTTP_HOST']."/";

注意:

如果您使用的是IIS服务器,这可能不会产生相同的结果,因为HTTPS全局$_SERVER元素的填充方式不同。

票数 8
EN

Stack Overflow用户

发布于 2015-11-17 18:25:59

改变这个

代码语言:javascript
复制
$config['base_url'] = 'www.mypage.si/';

代码语言:javascript
复制
$config['base_url'] = 'http://www.mypage.si/';

我还想建议在视图文件上使用site_url而不是base_url。例如:

代码语言:javascript
复制
<li><a href="<?php echo site_url('services/cooling'); ?>">cooling</a></li>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33764075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档