2011-04-24 5 views
1

"순수한"PHP로 작성된 많은 스크립트가있는 웹 사이트가 있습니다. 즉, 특정 프레임 워크가 파일을 쓰는 데 사용되지 않았습니다. 또한 모든 URL은 .htaccess과 특정 PHP 스크립트를 사용하여 맞춤 설정합니다.큰 웹 사이트에 CodeIgniter의 새 페이지

부드럽게 전환하려면 이전 페이지에 대한 액세스를 방해하지 않으면 서 새 페이지에 대해 CodeIgniter를 사용하고 싶습니다. 그러나 CodeIgniter에서 본 모든 문서는 전체 웹 사이트 (아마도 몇 가지 예외가 있음)) 프레임 워크를 기반으로해야합니다.

이전 URL 및 코드를 그대로두고 단일 페이지에 프레임 워크를 사용할 수 있습니까?

답변

2

짧은 대답, 예.

예를 들어 기존 사이트를 그대로두고 하위 프레임 워크에서 CI 프레임 워크에 액세스 할 수 있습니다.

my_new_app가 변경 application 폴더이다

www.site.com/my_new_app/controller/method/ 

.

1

기본 템플릿 시스템이 이미 있으며 기존 사이트로 전체 페이지를 렌더링 할 수 있다는 가정하에 계속하겠습니다. Codeigniter는 실제로 프레임 워크이기 때문에 include과 같은 바닐라 PHP 또는 추가 라이브러리 및 클래스 사용을 막을 수있는 방법은 없습니다. 그래서, 당신이 할 수있는 한 가지는 당신의 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/faqapplication/views/old_site/pages/faq.php 파일을로드합니다. 적합하다고 생각되는 다른 경로를 적용 할 수 있습니다.

이렇게하면 Codeigniter 규칙을 사용하도록 한 번에 한 페이지 씩 이동할 수 있습니다.

+0

고마워요,하지만 이미 mod_rewrite와 커스텀 PHP 스크립트를 사용하여 복잡한 URL 재 작성 시스템을 설정했기 때문에 이것은 비현실적이라고 생각합니다. – Johan

+1

예,이 방법으로 다시 쓰기를'routes.php'로 옮겨야합니다. 관리하기에는 너무 많습니다. –