2012-08-13 5 views
2

나는 간단한 네트워킹 사이트를 구성하고 있으며 URL이 페이스 북과 비슷하게 작동하도록하고 있으므로 domain.com/username을 입력하면 사용자 프로필을 얻을 수 있습니다. 내가 로그인 한 사용자codeigniter 기본 컨트롤러 URL 라우팅

은 기본 컨트롤러가 집이라고 나는 현재 확인하는 _remap 기능을 사용하고

domain.com/home/username 

에서 프로파일

domain.com/ 

다른 사용자에 프로필이 이미이 방법을 수행 할 수 있습니다 전달되는 URL 또는 전달되지 않은 URL을 기반으로 다른 데이터를 표시하는 추가 URL 매개 변수 내가 사용할 수있는 설정 routes.php이 있습니까

domain.com/username 

:

내 질문은 어떻게 내가 의해 사용자 프로필을 액세스 할 수있는이지도 밖으로 것입니까? htaccess?

답변

4

당신은 당신의 설정에 다음과 같은 규칙을 추가해야합니다/routes.php

// Profile Route 
$route['(:any)'] = 'home/$1'; 

이 홈 컨트롤러에 대한 모든 요청을 라우팅합니다.

그래서 domain/michelledomain/home/michelle 로하지만, 모든 요청은 홈 컨트롤러 예에 라우팅됩니다이 경우 다시 라우팅 다시 것입니다. domain/pages/about도 false로 domain/home/pages/about으로 다시 라우팅됩니다. 각 프로파일 경로, 예를 들어, 이전에 같은 글의 규칙을 요청

domain/michelle => domain/home/michelle // TRUE 
domain/pages/about => domain/home/pages/about // FALSE 

그래서 당신은 추가해야합니다.

$route['pages/(:any)'] = 'pages/$1';는 모두 함께 넣어 :

// Page Route 
$route['pages/(:any)'] = 'pages/$1' 

// Last Profile Route 
$route['(:any)'] = 'home/$1'; 
+0

대단히 감사합니다.이 사진을 줄 것입니다. – user975044

1

이 CodeIgniter의에서 할 수있는 가장 쉬운 일이 아니다. 이렇게하려면 먼저 routes.php에서 사용하는 모든 경로와 줄을 추가해야하는 파일의 끝을 정의해야합니다.이 줄은 사용자가 있는지 확인하는 다른 모든 요청을 컨트롤러에 보냅니다.

$route['stores/(:any)'] = 'stores/$1'; 
$route['pages/(:any)'] = 'pages/$1'; 

$route['(:any)'] = "home/$1"; //this route will return user's page 
0

application/config 파일에서 사용할 수있는 routes.php 파일을 수정하면됩니다. routes.php에 대해 더 자세히 알고 싶으면. 여기에 링크가 있습니다 URI routing in Codeigniter