2012-12-28 6 views
6

나는 cakephp 프로젝트에서 일하고있다. .htaccess 파일을 사용하여 URL에서 index.php를 제거했으며 이제 URL에서보기 이름을 제거하고 싶습니다. & 다른 두 가지 매개 변수를 추가하십시오. 국가를 &으로 선택한다고 가정하면이 두 매개 변수가 선택시 URL에 표시되어야합니다. CakePHP의이cakephp의 url에서 action 이름을 제거하는 방법은 무엇입니까?

www.example.com/Controllername/viewname 

을 소요하지만 그것은 뷰와 컨트롤러와 PARAM2 등 PARAM1을 찾습니다이 방법을 전달하면 내 요구 사항이

www.example.com/Controllername/param1/param2 

처럼 그대로

내가 직면하고 문제이다.

www.example.com/Controllername/ 

답변

2

당신의 APP/routes.php에서 :

// www.example/com/Controllername 
Router::connect('/Controllername', 
    array('controller'=>'Controllername', 'action'=>'index')); 

// www.example.com/Controllername/param1/param2 
Router::connect('/Controllername/:param1/:param2', 
    array('controller'=>'Controllername', 'action'=>'index'), 
    array('pass' => array('param1', 'param2'))); 

및 컨트롤러 :

// set to null/a value to prevent missing parameter errors 
public function index($param1=null, $param2=null) { 
    //echo $param1 . ' and ' . $param2; 
} 

를 생성 링크 :

처음

같은해야 0

주문 사항. 당신이 즉이 적용되지 않습니다 countrytown

참고 원하는 무엇이든에 paramX 변경 : controllername/param1를 - 모두는이 예에 있어야합니다.

다른 방법이 있습니다.

+0

덕분에이 I를 시도했을 때 :

당신이 재 작성 모듈을 활성화해야 후에는 APP/routes.php 당신의 이전 대답 @Ross에 의해 지적 경로를 수정할 수 있습니다 URL이 있습니다. http://www.example.com/app/webroot/index.php/controllername/viewname/foo/bar 하지만 URL에서 viewname을 원하지 않습니다. –

0

mod-rewrite 모듈을 사용하도록 설정해야합니다. mod_rewrite가 활성화 된 경우 .htaccess를 사용하여 url에서 index.php를 제거하지 않아도됩니다. 웹 서버의 설명서에서이를 활성화하는 방법을 확인하고 cakephp의 기본 .htaccess가 나머지 라우팅을 처리 할 수 ​​있어야합니다. 응답에 대한

// www.example/com/Controllername 
Router::connect('/Controllername', 
array('controller'=>'Controllername', 'action'=>'index')); 

// www.example.com/Controllername/param1/param2 
Router::connect('/Controllername/:param1/:param2', 
array('controller'=>'Controllername', 'action'=>'index'), 
array('pass' => array('param1', 'param2'))); 
관련 문제