Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zend_Framewotk, przekierowania i błąd 500
Forum PHP.pl > Forum > Serwery WWW > Apache
lucassus
Witam.

Dlaczego na niektórych serwerach przekierowania spowodować mogą błąd 500 (Internal Error. The server encountered an internal error and could not complete your request)?

Na przykład u mnie na lokalhoście kod (Zend_Framework):
Kod
$this->_redirector->gotoRouteAndExit(array('id' => $quiz_id), 'quiz_info');

działa poprawnie, ale wykracza się na serwerze produkcyjnym.
Po paru prostych testach doszedłem do wnioski, że przy przekierowaniu tworzy się pętla nieskończona.
Dlaczego? Czy błąd tkwić może w niewłaściwie ustawionym baseUrl?

Poniższy kod na serwerze produkcyjnym działa poprawnie:
Kod
// set previous url
       if (isset($_SERVER['HTTP_REFERER'])) {
           $previousUrl = $_SERVER['HTTP_REFERER'];
       }
       else {
           $previousUrl = BASE_URL;
       }
      
       $this->_redirect($previousUrl);


ps.
Podejżewam, że problem ten nie dotyczy bezpośrednio Zend Framework, podobne rzeczy dziać mogą się przy zwykłych przekierowaniach. Plik .htaccess mam raczej dobrze skonfigurowany, nie ma tam żadnych dziwactw mogących psuć przekierowania.
nrm
to raczej kwestia ustawien apache i mod_rewrite, nie sądze aby Zend Pseduo framework miał coś tu do rzeczy
wolditm
spróbuj tak:

Przed redirect w kontrolerze dodaj
  1. <?php
  2. $this->_helper->Redirector->setUseAbsoluteUri();
  3. $this->_redirect('controller/action');
  4. ?>

jeżeli będzie ok na ten hosting co wywołuje problem, popraw plik
Zend/Controller/Action/Helper/Redirector.php, zeby zawsze nie robić powyższego
i standardowo ustaw
  1. <?php
  2. protected $_useAbsoluteUri = true;
  3. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.