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

CodeIgniter启用HTTPS后非首页404错误,HTTP下正常运行

解决方案:HTTPS下非首页404问题

我来帮你排查并解决这个问题,这种情况通常是CodeIgniter的base_url配置未适配HTTPS,加上**.htaccess重写规则未处理HTTPS环境**导致的,具体修复步骤如下:

1. 修正CodeIgniter的base_url配置

打开application/config/config.php,将空的base_url设置为你的HTTPS域名:

$config['base_url'] = 'https://domain.in/';
$config['index_page'] = ''; // 这个保持不变即可

空的base_url会让CI在生成链接时依赖当前请求的协议,但HTTPS环境下可能出现路径解析错误,明确指定HTTPS的base_url能确保所有页面链接都正确生成。

2. 更新.htaccess重写规则

原有的.htaccess规则没有处理HTTPS的强制跳转和适配,替换为以下内容:

Options +SymLinksIfOwnerMatch
RewriteEngine On

# 强制所有HTTP请求跳转到HTTPS(可选但推荐,避免混合内容问题)
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# 设置RewriteBase,确保服务器正确解析根目录路径
RewriteBase /

# 仅当请求的文件/目录不存在时,转发到index.php处理
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
  • [L,R=301]:L表示停止后续规则,R=301是永久重定向,告诉搜索引擎更新地址
  • RewriteBase /:帮助Apache正确识别网站根目录,避免子路径解析错误
  • [QSA]:保留请求中的查询字符串,确保带参数的页面也能正常访问

额外检查项

  • 确认你的服务器已经启用了mod_rewrite模块(Apache环境)
  • 检查SSL证书是否正确安装,虚拟主机配置中是否开启了443端口并绑定了证书
  • 清除浏览器缓存后再测试,避免旧的HTTP缓存导致的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:32:33