将CodeIgniter 3.0站点从GoDaddy迁移到Bluehost后无法正常访问
解决CodeIgniter 3.0迁移Bluehost后的维护页与404问题
先搞定默认显示index.html的问题
Bluehost服务器默认优先加载index.html,这就是你看到维护页的原因。不用删除或重命名该文件,直接在站点根目录的.htaccess(没有就新建一个)中添加一行规则:
DirectoryIndex index.php index.html
这样服务器会优先加载index.php,直接进入CodeIgniter的入口逻辑。
重点解决404错误
CodeIgniter的URL重写机制需要适配Bluehost的服务器环境,按以下步骤逐一排查:
1. 确认mod_rewrite已启用
Bluehost默认开启该模块,但保险起见,进入cPanel的「Apache模块」选项,找到mod_rewrite确保它处于勾选状态。
2. 替换为Bluehost兼容的.htaccess规则
从GoDaddy复制的.htaccess大概率不兼容Bluehost环境,直接替换成以下规则:
RewriteEngine On RewriteBase / # 允许访问真实存在的文件或目录 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 将所有请求重写到index.php处理 RewriteRule ^(.*)$ index.php/$1 [L]
如果站点部署在子目录(比如public_html/my-site),需要把RewriteBase /修改为RewriteBase /my-site/。
3. 检查CodeIgniter核心配置
打开application/config/config.php,确认两个关键配置项:
$config['base_url']:填写你的完整站点URL,比如https://yourdomain.com,子目录需追加对应路径$config['index_page']:设置为空字符串'',移除URL中的index.php后缀
4. 适配PHP版本
CodeIgniter 3.0支持PHP7.2~7.4版本,在Bluehost的cPanel中进入「PHP版本」选项,切换到7.4版本(不要选择PHP8+,3.0不兼容),避免语法层面的兼容问题。
5. 核对文件权限
确保以下目录和文件的权限设置正确:
application/cache:755application/logs:755index.php和.htaccess:644
Bluehost的权限管控较严格,权限不足会导致文件无法读取,进而触发404错误。
最后排查手段:查看服务器错误日志
如果以上步骤都无法解决问题,进入cPanel的「错误日志」选项,查看具体报错信息——有时候表面是404,实际是数据库连接失败、文件路径错误等后台问题,日志会明确标注原因。
内容的提问来源于stack exchange,提问作者kaloi88
相关产品推荐
相关产品推荐

