如何让旧的codeigniter项目在子目录中工作
首先,我不是一个codeigniter开发人员,尽管我对它和MVC有过一些接触。我继承了一个项目,在这个项目中,公司的老开发人员已经关闭了他们的codeigniter网站,并用一个静态的单页html内容替换了它。他们这样做(据我所知)只是重命名index.php并在根目录中添加index.html 所以。。。我将所有codeigniter文件移动到一个子目录,并适当地重命名index.php文件 现在出现主页,但所有内部链接都因内部(500)服务器错误而中断 我做了几件没有用的事:如何让旧的codeigniter项目在子目录中工作,codeigniter,Codeigniter,首先,我不是一个codeigniter开发人员,尽管我对它和MVC有过一些接触。我继承了一个项目,在这个项目中,公司的老开发人员已经关闭了他们的codeigniter网站,并用一个静态的单页html内容替换了它。他们这样做(据我所知)只是重命名index.php并在根目录中添加index.html 所以。。。我将所有codeigniter文件移动到一个子目录,并适当地重命名index.php文件 现在出现主页,但所有内部链接都因内部(500)服务器错误而中断 我做了几件没有用的事: 修改con
- 修改config.php base_url以包含子目录:
$config['base_url']=“http://”$_服务器['HTTP_HOST']。“/subdir/”代码>
- 尝试了
$config['uri\u protocol']的所有选项。
有人有什么想法吗?我真的只需要从站点恢复数据,我可以通过查看数据库和一些直接编码到视图中的其他内容手动恢复数据,但我更愿意让旧站点在子目录中运行。Is
$config['index\u page']=''代码>
服务器是否运行Apache?如果是,那么.htaccess
规则如何?如果是这样,您可能需要添加一个重写基本规则,如下所示:
RewriteBase /subdir/
我们假设旧开发人员正确地使用了anchor()
、base\u url()
、和/或site\u url()
。如果他们硬编码链接(你不应该使用CI),然后,您必须编写.htaccess
规则,将它们重写到新的子目录中,或者编辑可能生成此类链接的控制器/视图。您认为我在编辑之后再次查看config.php内容值得吗?在将其放入子目录之前是否对其进行了测试?否,我不希望它影响当前的live页面。但你质疑这一点是对的。我意识到我的方法是有缺陷的,我可以通过site.com/index-.php/pagename
引用页面来访问原始站点(这是我所需要的),因为你让我朝着正确的方向思考。我的提问更多的是为了避免不必要的实验,也就是说,对可能根本不存在的问题进行故障排除(例如,如果站点一开始就不工作)。让CodeIgniter在子目录中工作应该不是很难。。。可能只有一个配置项不正确。