Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zend_Framewotk, przekierowania i błąd 500
lucassus
post 4.02.2008, 16:11:41
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.01.2008

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
nrm
post 4.02.2008, 19:35:37
Post #2





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

Ostrzeżenie: (0%)
-----


to raczej kwestia ustawien apache i mod_rewrite, nie sądze aby Zend Pseduo framework miał coś tu do rzeczy


--------------------
Go to the top of the page
+Quote Post
wolditm
post 4.02.2008, 20:20:36
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 2
Dołączył: 20.07.2005

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
Wspomnienia
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2025 - 07:31