Przekierowania w Zend Framework


Ostatnio instalowałem aplikację opartą o Zend Framework na serwerze używającym oprogramowania IdeaWebServer i okazało się, że nie działają przekierowania: każda próba przekierowania za pomocą klasy Zend_Controller_Action_Helper_Redirector kończyła się błędem Internal Server Error 500. W pierwszej chwili pomysłałem że to wina serwera, ale błąd okazał się mieć źródło w samym ZF.

Po sprawdzeniu nagłówków i zawartości tablicy $_SERVER nie udało się niczego konkretnego ustalic. Na szczęście okazało się że podobny błąd był już zgłoszony (ZF-778) i połowicznie rozwiązany. Rozwiązanie jest bardzo proste – przed przekierowaniem trzeba włączyć użycie absolutnych adresów:

$redirectHelper->setUseAbsoluteUri(true);

Domyślne ustawienie tej wartości w ZF na FALSE jest nieco dziwne, ponieważ dokument RFC 2616 jasno określa, że adres dla nagłówka Location ma być absolutny (RFC 2616, punkt 14.30). Mam nadzieję że w którejś z nastęnych wersji domyślne ustawienie zostanie zmienione.

Informacje oraz linki


Inne artykuły
Polecane
Zend Studio - The premiere PHP IDE

Dodaj komentarz

Poświęć chwilę i wyraź swoją opinię. Możesz użyć niektórych znaczników HTML.

Komentarze czytelników

Zastanawiam się nad użytecznością ZF w ogóle. Mnie osobiście zniecheciło wywalanie się całego Apache’a przy literówkach z mojej strony – zawsze się moze przecież zdarzyc – ale żeby cały serwer przez to padal??

Czy w ogole warto interesowac sie ZF?

Sorry, ze troche OT, ale ciagle mnie zastanawia jak prezentuje sie wspolpraca z ZF po dluzszym posiedzeniu.

Właśnie uratowałeś mi życie – dzięki :D

Czasami ZF potrafi wkurzyć. Ale ogólnie wychodzi na plus:)