2012-06-04 6 views
2

나는 codeigniter가있는 웹 응용 프로그램을 개발 중입니다. 저는 "Administration"이라는 이름으로 컨트롤러에 폴더를 만들었습니다. 이 폴더 안에는 관리 패널과 관련된 모든 컨트롤러가 있습니다.Codeigniter의 라우팅 문제

이제 모든 사용자가 www.mywebsite.com/administration으로 URL을 입력하면 사용자는 관리 후에 다음 세그먼트로 오는 모든 컨트롤러로 리디렉션되어야합니다. 사용자가 wwww.mywebsite.com/administration/login을 입력하는 경우처럼 로그인 컨트롤러가 실행되어야합니다. 이것은 꽤 명백한 것입니다.

이제 누군가가 www.mywebsite.com/anything_else를 입력 할 때 기본적으로 다른 컨트롤러로 이동해야합니다. 다음 경로 설정을 사용하고 있습니다.

$route['default_controller'] = 'welcome'; 
$route['404_override'] = ''; 
$route['administration/(:any)']='administration/$1'; 
$route['(:any)']='fetch_pages'; 

안내하십시오.

$route['default_controller'] = 'welcome'; 
$route['404_override'] = 'fetch_pages/index'; 

이 솔루션은 명백한 administration 경로를 선언 건너 뛸 당신이 할 수있게하고, 다른 모든 경로는 fetch_pages 컨트롤러를 통해 호출됩니다 :

답변

0

나는 다른 접근을하는 것이 좋습니다 것입니다.

Read more about 404_override

는 필요에 따라, 당신은 당신이 uri에 따라 데이터를 찾을 수 없을 때 show_404()를해야 할 것이다.

+0

잘와 폴더를 만들었습니다 생각합니다. 감사. – bmrinal

+0

또한 더 나은 방법이있는 경우 제안하십시오. 또한 이전 접근법의 실수를 지적 할 수 있다면 좋을 것입니다. – bmrinal

+0

나는 당신에게 효과가 없었던 것이 확실치 않지만, 주어진 경로 대신'$ route [ '(. +)'] = 'fetch_pages/$ 1'을 시도해 볼 것을 고려할 것입니다. –

0
$route['^(?!administration).*'] = "fetch_pages"; 
$route['administration/(:any)']='Administration/$1'; 

난 당신이 관리에서 대문자 "A"도움