2011-10-01 3 views
0

커스텀 MVC 아키텍처로 프로젝트를 개발했습니다. 그리고 저는 아파치 세계에 처음 왔기 때문에이 문제에 대한 도움을 주시면 감사하겠습니다. 웹에서 많은 튜토리얼을 발견했지만, 아무도 내 이익을 좋아하지 않았습니다.URL을 다시 작성하여 index.php를 숨기고 멋진 쿼리 만들기

나는 다음과 같은 URL이 있습니다 http://knjiskicrv.comoj.com/book/id/1

또는이 :이 속으로 http://knjiskicrv.comoj.com/index.php?page=faq : http://knjiskicrv.comoj.com/index.php?page=book&id=1

이 같은 표시 싶습니다 쿼리에는 page이없는 경우 http://knjiskicrv.comoj.com/faq

(http://knjiskicrv.comoj.com/index.php), 다음과 같이 표시하고 싶습니다 : http://knjiskicrv.comoj.com/

또한 아니 page 쿼리 (http://knjiskicrv.comoj.com/index.php?category=2), 이건 같아야합니다 http://knjiskicrv.comoj.com/category/2

누군가 도움이 될 것입니다. 감사.

답변

1

실제로 문제는 두 단계로 해결됩니다. 먼저 MVC에서 "라우팅"이 무엇인지 이해해야합니다. 프레임 워크와 같은 MVC를 자체적으로 구현하고 라우팅을 지원하지 않는다면 아마 이전에 어떻게 작동했는지조차 알지 못했을 것입니다. (슬프지만 사실)

MVC 프레임 워크에서 ROUTER를 사용하여 라우트를 설정하면 라우터에서 HEY를 나타내는 URL을 분석합니다. 요청한 URL과 일치하는 URL을 찾은 다음 작업을 수행하십시오.

그렇다면 컨트롤러는 자신에게 경로를 지정하라는 요청을 받고 자신이 적합하다고 생각하는 URL을 PARSES에 보냅니다. explode ('/', $ _SERVER [ 'REQUEST_URI'])를 사용하고 예상되는 변수에 매핑하기 위해 url의 다른 부분을 읽는 것.

이 모든 것은 매우 이론적입니다. 왜냐하면 커스텀 방식으로 구현할 수있는 방법이 많기 때문입니다. 당신이 사용해야 할 유일한 것은 모든 요청을 index.php에 전달하는 mod_rewrite 마술입니다.

RewriteEngine On 
RewriteCond %{REQUEST_URI} !^assets/ 
RewriteRule .* index.php 
:

내가 일반적으로 가야하지만 난 집에서 그것을에 액세스 할 수없는 무엇

http://www.addedbytes.com/for-beginners/url-rewriting-for-beginners/

이 같은 것입니다 : mod_rewrite를 대한 자세한 내용은 아래 URL을 봐, 그것은 매우 복잡한 주제이다

이렇게하면 모든 트래픽을 index.php로 리디렉션하고 $ _SERVER [ 'REQUEST_URI']를 사용하여 요청을 분석 할 수 있습니다. 애셋/폴더의 모든 요소는 수정되지 않고 올바르게 작동합니다.

참고, 내가 그것을 ...

+0

좋은 기술적 인 답변을 작동하지 않을 수 있습니다, 내 모자 떨어져 그 부분을 구축하지만, "슬프지만 진실"비트는 매우 친절하지 않습니다. 사람들이 많이 알지 못하는 영역에주의를 환기시키는 것이 예의가 아닙니다. 인터넷 토론의 첫 번째 규칙 : 좋을 것! – halfer

+0

오케이 죄송합니다. 다음 번에는 더 조심하겠습니다. –

+0

나는 내 프로젝트의 모든 링크를 둘러싼'url()'함수를 가지고있다. 그래서 이것이 내 첫 MVC 임에도 불구하고 이것이 중요한 포인트라는 것을 명심했다. –

관련 문제