Php Codeigniter重复基本url()
我的Codeigniter有问题,它复制了基本url。如果我访问控制器中的索引页,所有url都可以,但当我访问的页面不是控制器中的索引页(在我的例子中是冷却页面)时,我会得到奇怪的重复url,如下图所示Php Codeigniter重复基本url(),php,.htaccess,codeigniter,Php,.htaccess,Codeigniter,我的Codeigniter有问题,它复制了基本url。如果我访问控制器中的索引页,所有url都可以,但当我访问的页面不是控制器中的索引页(在我的例子中是冷却页面)时,我会得到奇怪的重复url,如下图所示http://www.mypage.si/www.mypage.si/services/colling 比如说 这是我的服务管理员 class Services extends CI_Controller { public function index() { $this
http://www.mypage.si/www.mypage.si/services/colling
比如说
这是我的服务管理员
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-->
提前谢谢你 改变这个
$config['base_url'] = 'www.mypage.si/';
$config['base_url'] = 'www.mypage.si/';
到
我还想建议在查看文件时使用site\u url
而不是base\u url
。例如:
<li><a href="<?php echo site_url('services/cooling'); ?>">cooling</a></li>
默认情况下,Codeigniter不会将当前协议添加到您的基本url,要解决您的问题,只需更新:
到
如果您希望这是一个高度动态的部分,这是我目前的基本url,它永远不需要更新
$config['base_url'] = "http".((isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS'])) ? "s" : "")."://".$_SERVER['HTTP_HOST']."/";
注:
如果您使用的是IIS服务器,这可能不会产生相同的结果,因为
$\u服务器
全局中的HTTPS
元素的填充方式不同。替换$config['base\u url']=“www.mypage.si/”使用$config['base\u url']='http://www.mypage.si/';代码>而且应该很好用喔,我差点就因为这个摔碎了头。还有一点,现在所有以这种方式编写的相对链接都有这样的链接:如何删除服务?在Front前面加上echo base_url()
前缀如果资源位于应用程序的根目录中,那么您只需在url的开头添加一个/
。哦,我在跳,我不需要这样做。ThxAhaha,好的,没问题:)@Valor_uu是对的,但是你应该在视图文件中使用site\u-url()
而不是base\u-url()
,因为如果你在一个CI安装中扩展你的CI以包含多个应用程序,那么你必须完成并更改所有使用base\u-url()
的操作!谢谢你的建议
$config['base_url'] = 'http://www.mypage.si/';
$config['base_url'] = "http".((isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS'])) ? "s" : "")."://".$_SERVER['HTTP_HOST']."/";