2015-01-04 4 views
0

나는 PhalconPHP의 첫 번째 응용 프로그램을 작성 중이므로 작업하는 동안 문서가 깊다.PhalconPHP - 홈 페이지 리다이렉션은 URI에 항상 추가/색인을 붙인다.

내 앱이 www.myapp.tld에서 실행되고 있다고 가정 해 보겠습니다. 어떤 상황에서는 내가 다시 홈 페이지로 사용자를 리디렉션해야하고 그것을 위해 나는 다음과 같은 코드를 사용하고 대신 www.myapp.tld을 리디렉션하는 경우

if ($haveToRedirect) { 
    $this->response->redirect(); 
    $this->view->disable(); 
    return; 
} 

, 사용자가 www.myapp로 리디렉션됩니다 .tld/index. 나는 다른 리디렉션 통화를 시도했지만, 모두 같은 결과 제공 : 나는 '/'로 기저 URI를 설정 한 응용 프로그램의 부트 스트랩에서

$this->response->redirect(''); 
    $this->response->redirect('/'); 
    $this->response->redirect('/', TRUE); 

:

$di->set('url', function() { 
    $url = new Phalcon\Mvc\Url(); 
    $url->setBaseUri('/'); 
    return $url; 
}); 

방법으로는 거기를 "색인"이 추가되지 않도록하고 "www.myapp.tld"로 리디렉션 하시겠습니까?

답변

1

"/ index"로의 리디렉션의 원인은 실제로 몇 주 전에 만들어진 Permission 클래스에있었습니다. 그것은했다 :

$this->response->redirect('index');

를 손님에 액세스 할 수있는 모든 컨트롤러. 새로운 컨트롤러를 추가 한 이후로 나는 지속적으로 인덱스로 리다이렉션되었고 컨트롤러에 넣은 조건부 리디렉션을 제거했을 때 리디렉션이 다른 곳에서 온다는 사실을 알게되었습니다.

어쨌든, 이것은 그 것이다. 수업은 다음 번에 도움을 청하기 전에 '색인'에 대한 grep을 배웠습니다. :)

1

파일을 지정하지 않으면 기본적으로 해당 디렉토리의 색인 페이지로 이동합니다. 파일 위치를 지정해야합니다. URL이 아닌 URI도 시도하십시오.

+0

아무 것도 지정하지 않았으므로 인덱스 페이지로 리디렉션된다는 것을 알고 있습니다. 색인 페이지는 다음 두 URL에 있습니다. 'www.myapp.tld/index' 'www.myapp.tld /' 나는 단지 후자의 것을 선호합니다. – Vorta

+0

wheather를 제어 할 수 있으며 후행 색인이 표시되지 않습니다. .htaccess 파일을 만들어야합니다. 이 주제에 대한 유용한 문서가 있습니다 : [색인 제거] (https://ellislab.com/expressionengine/user-guide/urls/remove_index.php.html). – ZenStein

+0

이것은 실제로 URL에서 index.php 파일을 제거합니다. 나는 Nginx를 사용하고 있으며 나의 구성은 이미 PhalconPHP 사양에 따라 index.php 매개 변수에 URI를 다시 작성합니다. 'location @rewrite { \t 다시 쓰기 ^/(. *) $ /index.php?_url=/$1; }' 지금 당장 가지고있는 문제는 필요없는 반면에 인덱스 컨트롤러의 이름이 URL에서 호출된다는 것입니다. – Vorta