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

时间:2012-09-17 16:40:29

标签: codeigniter

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

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

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

我做了几件事无济于事:

  • 修改了config.php base_url以包含子目录:$config['base_url'] = "http://". $_SERVER['HTTP_HOST']."/subdir/";
  • 尝试了$config['uri_protocol']
  • 的所有选项

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

1 个答案:

答案 0 :(得分:0)

$config['index_page'] = '';

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

RewriteBase /subdir/

我们假设旧版开发人员正确使用了anchor()base_url()和/或site_url()。如果他们对链接进行了硬编码(你不应该对CI进行编码),那么你必须编写.htaccess规则来将它们重写到新的子目录中,或者编辑可能正在生成这样的控制器/视图。链接。