首页 文章

如何让旧的codeigniter项目在子目录中工作

提问于
浏览
0

首先,我不是一个codeigniter开发人员,虽然我已经接触过它和一般的MVC . 我继承了一个项目,旧的开发公司取下了他们的codeigniter网站,并用一个静态的单页html代替它 . 他们这样做(据我所知)只是重命名index.php并将index.html放在root中 .

所以...我将所有codeigniter文件移动到一个子目录,并相应地重命名了index.php文件

现在显示主页,但所有内部链接都因内部(500)服务器错误而中断 .

我做了几件事无济于事:

  • 修改了config.php base_url以包含子目录: $config['base_url'] = "http://". $_SERVER['HTTP_HOST']."/subdir/";

  • 尝试了 $config['uri_protocol'] 的所有选项

有人有主意吗?我真的只需要从站点恢复数据,我可以通过查看数据库和其他一些直接编码到视图中的东西来手动完成 - 但我宁愿让旧站点在子目录中运行 .

1 回答

  • 0

    $config['index_page'] = '';

    服务器是否运行Apache?如果是这样, .htaccess 规则呢?如果是这样,您可能需要添加RewriteBase规则,如下所示:

    RewriteBase /subdir/
    

    我们假设旧的开发者正确地使用了 anchor()base_url() 和/或 site_url() . 如果他们对链接进行了硬编码(您不应该编写 .htaccess 规则来将它们重写到新的子目录中,或者编辑可能生成此类链接的控制器/视图 .

相关问题