Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter重复基本url()_Php_.htaccess_Codeigniter - Fatal编程技术网

Php Codeigniter重复基本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

我的Codeigniter有问题,它复制了基本url。如果我访问控制器中的索引页,所有url都可以,但当我访问的页面不是控制器中的索引页(在我的例子中是冷却页面)时,我会得到奇怪的重复url,如下图所示
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']."/";