2009-11-11 3 views
1

app.ini 형식으로 체인 규칙을 작성하는 방법에 대해 similar question 달 전에 질문했습니다. 이 질문에 대한 대답은 훌륭하게 진행되었습니다! 그러나 이제 Zend Framework 1.9.5의 최신 버전으로 업그레이드했는데 (다른 문제로 업그레이드해야했습니다) 이제는 내 하위 도메인이 더 이상 작동하지 않습니다!하위 도메인 라우팅 규칙 (체인 사용) 젠드 프레임 워크 1.9.5로 업그레이드 한 후 페이지가 아닌 루트가 아닌 경우

분명히하기 위해 내가 subdomain.domain.com을 방문하면 내 규칙을 인식하지 못합니다. 그러나 subdomain.domain.com/somepage/을 방문하면 이 내 라우팅 규칙을 인식합니다. 내가 manager.sitename.com에 가면

;; the following is apparently being ignored, and does not work 
routes.manager.type = "Zend_Controller_Router_Route_Hostname" 
routes.manager.route = "manager.sitename.com" 
routes.manager.defaults.module = "manager" 

;; this is not being ignored and works! 
routes.manager.chains.settings.type = "Zend_Controller_Router_Route_Static" 
routes.manager.chains.settings.route = "/settings" 
routes.manager.chains.settings.defaults.controller = "manager" 
routes.manager.chains.settings.defaults.action = "settings" 

그래서 예를 들어, 그냥 내 기본 지수와 컨트롤러 ($this->getRequest()->getModuleName()가 비어 모듈에 액세스하지 않음)로 리디렉션 :

여기 내 코드입니다. 그러나 manager.sitename.com/settings으로 가면 페이지가 나타납니다! 이 app.ini 구성은 ZF 1.7.8에서 잘 작동하지만, 지금은 1.9.5로 업그레이드 한 이후 더 이상 작동하지 않습니다.

구성에 routes.manager.defaults.controller = "manager"routes.manager.defaults.action = 'index"을 추가하려고 시도했지만 작동하지 않았습니다.

Zend Framework를 다루는 체인이 연결되어 있고 app.ini이 많이 있습니다. 이 문제에 대한 도움을 주시면 감사하겠습니다.

답변

1

해결책을 찾았습니다. 문제는 먼저 Zend Framework 라우팅 규칙의 버그로 인해 빈 정적 경로 (빈 문자열)가 일치하지 않는 것입니다. 따라서 sub.example.com/hello.php이 작동하지만 sub.example.com은 작동하지 않습니다.

패치가 있으며 완벽하게 작동합니다.

here으로 가서이 문제에 대해 더 자세히 읽고 패치를 받으십시오. 바라건대 그들은 언젠가 곧이 패치를 트렁크에 통합하기를 바랍니다.