programing

(:임의)에 대한 코드 점화기의 라우팅

javamemo 2023. 7. 9. 09:30
반응형

(:임의)에 대한 코드 점화기의 라우팅

저는 제 CodeIgniter 응용 프로그램을 워드프레스와 비슷하게 작동시키려고 합니다.

저는 다음과 같은 URL을 만들 수 있기를 원합니다.

http://www.example.com/my-post-example

http://www.example.com/new-headline-here

http://www.example.com/i-love-stackoverflow

내 라우팅:

$route['(:any)'] = "core/index/$1";

그러면 코어 컨트롤러를 호출하고 페이지 이름을 인덱스 함수로 전달합니다.

그런 다음 데이터베이스에서 페이지 이름을 검색하고 사용자에게 페이지를 표시합니다.지금까지는 좋습니다.

하지만 다른 컨트롤러를 호출하고 싶을 때가 있을 것입니다.예:

http://www.example.com/admin/edit_page/3

http://www.example.com/admin/settings

이제 내 경로가 이 모든 규칙을 가져와서 내 코어 컨트롤러로 전송할 것이라고 가정합니다.특정 페이지에 대해 예외를 둘 수 있는 방법이 있습니까?아니면 내 코어 컨트롤러 내부에서 이 검사를 수행하는 것이 좋은 방법입니까?

예를들면,

if ($page not in DB) {
   // Call controller/method
}

이것은 CodeIgniter가 이것을 처리하기를 원하기 때문에 약간 중복된 것처럼 보입니다.

사용자가 사용하는 라우팅 규칙은 사용자의 목적에 적합합니다.

사용하는 경우http://www.example.com/admin/edit_page/3그것이 당신에게 보낼 이 링크.admin컨트롤러 및edit_page방법.경로를 사용하지 않습니다.any규칙.

하지만 당신의 링크가 이렇게 보인다면 당신은 한가지 문제를 갖게 될 것입니다.

http://www.example.com/my-post-example/test

그것은 가려고 노력할 것입니다.my-post-example컨트롤러 및 테스트 방법.

다시.http://www.example.com/admin경로를 사용합니다.any규칙. 즉, 사용자를 코어 컨트롤러로 리디렉션합니다.admin/index그런 경우 URL은 다음과 같아야 합니다.http://www.example.com/admin/index

마지막으로 컨트롤러/메소드 이름을 사용하여 다른 링크를 호출하면 다음 링크를 사용하여 OK입니다.any규칙.

언급URL : https://stackoverflow.com/questions/43908653/routing-in-codeigniter-for-any

반응형