我有写的“纯” PHP,即没有具体的框架已经用于写文件的许多脚本网站。此外,所有的URL都是使用.htaccess
和特定的PHP脚本自定义的。为了顺利过渡,我想在不中断访问旧页面的情况下开始使用CodeIgniter来处理新页面,但是我在CodeIgniter上看到的所有文档给人的印象是整个网站(可能有一些例外)需要基于框架。CI中的新页面上了一个大的网站
有没有可能在这里和那里使用单页的框架,同时保留旧的网址和代码是否完整?
我有写的“纯” PHP,即没有具体的框架已经用于写文件的许多脚本网站。此外,所有的URL都是使用.htaccess
和特定的PHP脚本自定义的。为了顺利过渡,我想在不中断访问旧页面的情况下开始使用CodeIgniter来处理新页面,但是我在CodeIgniter上看到的所有文档给人的印象是整个网站(可能有一些例外)需要基于框架。CI中的新页面上了一个大的网站
有没有可能在这里和那里使用单页的框架,同时保留旧的网址和代码是否完整?
简短的回答,是的。
你可以从你的子文件夹访问CI框架,比如,离开现有站点不变。
即
www.site.com/my_new_app/controller/method/
其中my_new_app
是重命名的文件夹application
。
我会去你已经有一个适当的基本模板系统,并能呈现与您现有的网站整页的假设。因为Codeigniter实际上只是一个框架,所以没有什么能够阻止你使用vanilla php,比如include
,或者额外的库和类。因此,您可以做的一件事是将您的网站转储到views
文件夹中的子目录中,然后创建一个“主控”控制器,该控制器除了加载完整的HTML页面外什么都不做。
class Master extends CI_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
// We're expecting something like "registration/how-to-apply" here
// Whatever your URL is. The .php extension is optional
$args = func_get_args();
$path = 'path_to_my_old_site/'.explode('/', $args);
$this->load->view($path);
}
}
// Then use this in config/routes.php
$route['(:any)'] = 'master/index/$1';
这将路线所有页面通过主控制器。因此,yoursite.com/pages/faq
将加载文件application/views/old_site/pages/faq.php
。如果您认为合适,您可以应用不同的路线。
这样,您可以将您的时间迁移到使用Codeigniter约定,一次一页。
谢谢,但我认为这将是不切实际的,因为我已经使用mod_rewrite和自定义PHP脚本设置了一个复杂的URL重写系统。 – Johan 2011-04-26 16:01:37
是的,您必须使用此方法将重写移动到'routes.php',并且可能有太多无法管理的内容。 – 2011-04-26 16:04:24