Val*_*or_ 4 php .htaccess codeigniter
我遇到了Codeigniter的问题,它复制了base_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');
}
}
Run Code Online (Sandbox Code Playgroud)
我的.htaccess文件
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)
config.php文件
$config['base_url'] = 'www.mypage.si/';
$config['index_page'] = '';
Run Code Online (Sandbox Code Playgroud)
这是我的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-->
Run Code Online (Sandbox Code Playgroud)
先感谢您!
Codeigniter默认情况下不会将当前协议添加到您的基本网址,以修复您的问题只需更新:
$config['base_url'] = 'www.mypage.si/';
Run Code Online (Sandbox Code Playgroud)
至
$config['base_url'] = 'http://www.mypage.si/';
Run Code Online (Sandbox Code Playgroud)
如果你想让它成为一个非常有活力的部分,这就是我目前拥有的基本网址,它永远不需要更新
$config['base_url'] = "http".((isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS'])) ? "s" : "")."://".$_SERVER['HTTP_HOST']."/";
Run Code Online (Sandbox Code Playgroud)
如果您使用的是IIS服务器,则可能无法产生相同的结果,因为全局中的HTTPS元素$_SERVER不会以相同的方式填充.
| 归档时间: |
|
| 查看次数: |
1763 次 |
| 最近记录: |