You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Codeigniter 3.1.7中base_url()在href属性内生成错误链接求助

解决CodeIgniter 3.1.7子目录下base_url()重复路径问题

嘿,我之前在CI3的子目录部署时也踩过类似的坑,咱们一步步来排查解决:

  • 最可能的原因:HTML链接写法错误
    你提到直接输出base_url()是正确的,但放到href里就重复,大概率是你在写链接时手动拼接了子目录路径,比如误写成:

    <a href="domain.com/site1/<?php echo base_url();?>">我的链接</a>
    

    这就会把base_url()的内容(domain.com/site1/)又拼到domain.com/site1/后面,导致重复。正确的写法应该是直接用base_url()作为链接的前缀,比如:

    <!-- 链接到子目录根 -->
    <a href="<?php echo base_url();?>">首页</a>
    <!-- 链接到具体页面 -->
    <a href="<?php echo base_url('about');?>">关于我们</a>
    
  • 检查config.php配置
    确认application/config/config.php里的base_url已经正确设置为完整的URL(包括协议、域名、子目录,且末尾带斜杠):

    $config['base_url'] = 'https://domain.com/site1/';
    

    如果没设末尾的斜杠,虽然直接输出可能没问题,但某些场景下拼接路径时容易出问题,加上更稳妥。

  • 排查.htaccess重写规则
    确保site1目录下的.htaccess规则是CI的标准写法,不要有多余的路径拼接:

    RewriteEngine On
    # 如果index.php已移除,保留这两条规则
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
    

    如果你的.htaccess里写了自定义的RewriteRule导致路径重复,那就需要调整规则。

  • 清除浏览器缓存
    有时候浏览器缓存的旧URL规则会干扰新配置,清空缓存后再测试看看。

试试上面这几步,应该能解决你的问题!

内容的提问来源于stack exchange,提问作者DonJoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:30:47