Codeigniter重复base_url()

时间:2015-11-17 18:10:34

标签: php .htaccess codeigniter

我遇到了Codeigniter的问题,它复制了base_url。如果我访问控制器中的索引页面所有网址都很好,但是当我访问一个不是控制器中的索引页面的页面(在我的情况下冷却)然后我得到像这样的奇怪的重复网址Except

例如

这是我的服务控制器

http://www.mypage.si/www.mypage.si/services/colling

我的.htaccess文件

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');
    }
}

的config.php

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

这是我的HTML

$config['base_url'] = 'www.mypage.si/';
$config['index_page'] = '';

提前谢谢!

2 个答案:

答案 0 :(得分:7)

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

<ul>
    <!-- 10 -->
    <li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>

    <!-- Repeat a few times ... -->

    <li class="absolute"></li>
</ul>

* {margin:0;padding:0;border:0;}

ul {
    list-style:none;
    width:100vw;

    li {
        float:left;
        width:10vw;
        height:10vw;
        background-color:#CCC;

        &:hover {
             background-color:#AAA;
        }
    }

    .absolute {
        position:absolute;
        top:50vw;
        left:50vw;
        background-color:#DDD;
    }
}

如果你想让它成为一个非常有活力的作品,这就是我目前拥有的基本网址,它永远不需要更新

$config['base_url'] = 'www.mypage.si/';

注意:

如果您正在使用IIS服务器,则可能无法产生相同的结果,因为$config['base_url'] = 'http://www.mypage.si/'; 全局中的$config['base_url'] = "http".((isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS'])) ? "s" : "")."://".$_SERVER['HTTP_HOST']."/"; 元素未按相同方式填充。

答案 1 :(得分:2)

更改此

$config['base_url'] = 'www.mypage.si/';

$config['base_url'] = 'http://www.mypage.si/';

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

<li><a href="<?php echo site_url('services/cooling'); ?>">cooling</a></li>