我对复制base_url的Codeigniter有问题。如果我访问控制器中的索引页,所有url都很好,但是当我访问一个在控制器中不是索引页的页面(在我的例子中是冷却的)时,我会得到类似于这个http://www.mypage.si/www.mypage.si/services/colling的奇怪的重复url。
例如
这是我的服务控制器
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文件
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]Config.php
$config['base_url'] = 'www.mypage.si/';
$config['index_page'] = '';这是我的HTML
<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-->提前谢谢你!
发布于 2015-11-17 18:27:19
默认情况下,Codeigniter不会将当前协议添加到基本url中,只需更新即可修复您的问题:
$config['base_url'] = 'www.mypage.si/';至
$config['base_url'] = 'http://www.mypage.si/';如果您希望这是一个高度动态的部分,这就是我目前拥有的基本url,并且它永远不需要更新。
$config['base_url'] = "http".((isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS'])) ? "s" : "")."://".$_SERVER['HTTP_HOST']."/";注意:
如果您使用的是IIS服务器,这可能不会产生相同的结果,因为HTTPS全局$_SERVER元素的填充方式不同。
发布于 2015-11-17 18:25:59
改变这个
$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>https://stackoverflow.com/questions/33764075
复制相似问题