2013-04-22 2 views
0

이상한 요청인지 여부는 알 수 없지만 사용자 프로필이 표시된 페이지가 있습니다. 각 사용자에게는 물론 고유 한 사용자 이름이 있으며 이름과 관련된 링크에 포함되어 있습니다. 클릭 할 때 자신의 프로필로 이동 :codeigniter에서 사용자에게 표시되는 URL 변경

profile/profile_guest/username 

사용자가 프로파일 중 하나를 클릭, 그것은 주소 표시 줄에 사용자 프로필 및 URL로 이동하는 것입니다 :

http://domain.com/profile/profile_guest/ahlam 

내가 무엇을 달성하고자하는 이것을 처리하기 위해 routes.php를 설정하는 것입니다. 클릭 그렇게되면, 페이지를 프로파일로 전환하지만 URL 주소 표시 줄에 표시하는 것입니다 :

domain.com/ahlam 

을 위해, 내가 시도하는 것이 :

공정
$route['someTest'] = "profile/profile_guest/$1"; 

가 작동 아직하지 않은 말을 전체 URL이 표시됩니다. 이 문제를 해결하려면 어떻게해야합니까?

덕분에 당신은

$route['sometest/(:any)'] = "your/link/$1"; 

'$ 1'은 (는) 당신이 거 야 '(: 모든)'에서받은 파라미터처럼 같은 것을 사용해야합니다 모든

답변

0

부분.

+0

이해가 안 ... 당신이 설명해 할 수 있습니까? –

+0

거의. OP 요청의 문제는 기본을 모두 catch로 사용하고 있습니다. 그래서 그것은 $ route [ '(: any)'] = "profile/profile_guest/$ 1"; 다른 곳에서는 거의 긍정적으로 문제를 일으킬 것입니다. –

0
//site.com/john   = "profile/profile_gest/john" 
$route['([a-z0-9\-_]+)'] = "profile/profile_gest/$1"; 
//where $1 = "john", so "john" respects the pattern set below 

그러나 CI 라우팅 어떤 URI 일치 "인덱스", "포스트"와 같은이 패턴을 이해하는 것입니다 ... 프로파일 컨트롤러에 대한 라우팅입니다.

는 예를 들어, URL에 대한 사양을 추가 할 수있는 것을 방지하기 :

//site.com/john.html 
$route['([a-z0-9\-_]+)\.html'] = "profile/profile_gest/$1"; 

//site.com/user-john 
$route['user\-([a-z0-9\-_]+)'] = "profile/profile_gest/$1"; 

아니면 어떤 사용자 이름이 항상 놓여져 다른 페이지에 이의를 제기하지 않을 것이라는 확신하는 경우

이 규칙은 맨 아래에 있으므로 CI가이 규칙 앞에 다른 모든 라우팅 규칙을 확인합니다.

참고 : 이전에 귀하의 htaccess은 귀하의 URL에서 index.php를 제거하도록 설정되어야합니다.

CI URI Routing

Regular expression

관련 문제