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

CodeIgniter部署Plesk后菜单404错误求助

解决CodeIgniter部署Plesk后菜单404的问题

我帮你梳理下这个问题的排查和解决步骤——首页能正常加载但其他路由404,核心原因基本是URL重写规则没生效或者CodeIgniter的配置细节没到位,结合Plesk面板的环境,按下面的步骤来:

1. 调整CodeIgniter核心配置

先打开application/config/config.php,检查两个关键项:

  • 把index_page设为空字符串,这样URL里就不需要带index.php了:
    $config['index_page'] = '';
    
  • 确保uri_protocol设置为REQUEST_URI,这是最兼容现代服务器的配置:
    $config['uri_protocol'] = 'REQUEST_URI';
    

2. 配置.htaccess实现URL重写(重中之重)

CodeIgniter依赖.htaccess来把请求转发到index.php,你需要在你的文档根目录(httpdocs/public_html/cliftonhotel.ae)下创建或修改.htaccess文件,写入以下规则:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

如果上面的规则在Plesk里不生效,试试兼容Plesk环境的替代写法:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

写完.htaccess后,一定要去Plesk面板的域名设置 > Apache & nginx Settings里,把“Allow overrides”选项设置为All或者FileInfo,保存后让Apache重新加载配置。

3. 确认Plesk的文件结构和权限

  • 检查你上传的文件结构:确保public_html/cliftonhotel.ae目录下直接是CodeIgniter的核心文件(index.php、system、application),不要出现多余的嵌套层级。
  • 调整目录权限:把application/cache和application/logs目录的权限设为755(部分服务器可能需要777),确保PHP有写入权限——这虽然不是404的直接原因,但能避免后续其他问题。

4. 验证路由配置

如果前面的步骤都完成了还是404,检查application/config/routes.php里的路由规则,确保菜单对应的路由正确指向了控制器和方法,比如:

$route['about'] = 'pages/about'; // 假设关于页的控制器是Pages,方法是about

注意:Linux服务器上CodeIgniter的控制器和方法名称是区分大小写的,要确保和你的实际文件名称一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:48:02