2012-11-12 1 views
2

컨트롤러가 Articles이고 동작이 Search이라고 가정 해 봅시다.CakePHP 라우팅, 역방향 리디렉션

이 같은 routes.php에서 라우터 구성을 설정 한

:

Router::connect(
       '/search/:search_term/*', 
       array('controller' => 'articles', 'action' => 'search') 
); 

내가 http://localhost/search/cakephp

로 이동하면 문서 제목 검색 결과에 ' CakePHP의'을 들어 볼 수있는이 방법

하지만 http://localhost/articles/search/cakephp으로 이동하면 동일한 결과가 표시됩니다. 내가 routes.php 의 구성에 따라

http://localhost/articles/search/cakephp 

로 이동하면

는 내가 원하는 자동으로

http://localhost/search/cakephp 

로 리디렉션하는 것입니다.

답변

0

당신은 만들 htaccess로 당신이 루트와 함께 할 수 없습니다에 대한 리디렉션해야합니다 :

Router::redirect(
    '/articles/search/*', 
    '/search/', 
    array('persist' => true) 
); 
+0

몇 분 : 나는 그것이 작동 뭔가하지만 확신하지를 발견

RewriteRule ^articles/search/(.+)$ /search/$1 [L,NC] 

OK 'Router :: redirect'를 시도하고 우리가 뭔가있는 것처럼 보입니다. 그러나 매개 변수를 리디렉션하는 방법을 알고 있습니까? 처럼; _/articles/search/cakephp_를 _/search/cakephp_에 리디렉션하십시오. –

+1

이 문서에 따르면 :''persist '=> true'는 첫 줄에'*'와 일치하는 매개 변수를 전송해야합니다. – infinity

+1

감사합니다. _router :: redirect ('/ articles/search/*', array ('컨트롤러'=> '검색', array ('지속'=> 참))); 검색과 같은 역할을하는 컨트롤러와 그 후 매개 변수를 전달합니다. –