Zend: 500 error ipv 404

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Storm90
  • Registratie: September 2008
  • Laatst online: 09-09 15:23
Ik heb een probleem met 404 statuscodes in Zend Framework 1. http://www.url.nl/path/wrong geeft een 404 error (omdat het "/path" gedeelte wel bestaat). Maar wanneer de root fout is (/path), geeft het een 500 error terug. Dus http://url.nl/wrong geeft dus een 500 statuscode. Iemand die dit probleem eerder heeft ervaren en/of een oplossing weet?

Dit is mijn error handler:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    switch ($errors->type) {
                case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:
                case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
                case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
    
                    // 404 error -- controller or action not found
                    $this->getResponse()->setHttpResponseCode(404);
                    $this->view->message = 'Page not found '.$role;
                    
                    if (!$role) $this->_helper->layout->setLayout ( 'pages/404' );
                    else $this->_helper->layout->setLayout ( '404' );
                    
                    break;
                default:
                    // application error
                    $this->getResponse()->setHttpResponseCode(500);
                    $this->view->message = 'Application error';
                    break;
            }
            
            if ($errors->exception instanceof Zend_Acl_Exception) {
                // send needed headers...
                // prepare log message...
                // render info: resource_not_found.phtml
    
                
                $this->_helper->viewRenderer('error-no-access');
                $this->_helper->layout->setLayout ( '403' );            
            }

Acties:
  • 0 Henk 'm!

  • emnich
  • Registratie: November 2012
  • Niet online

emnich

kom je hier vaker?

wat is je $errors->type dan? Dat zal toch wel een clue geven

Acties:
  • 0 Henk 'm!

  • Storm90
  • Registratie: September 2008
  • Laatst online: 09-09 15:23
EXCEPTION_OTHER is de inhoud van $errors->type

EDIT:
Na wat dieper graven kwam ik deze error tegen: Zend_Acl_Exception. De oorspronkelijke fout, dus het zit 'm in de ACL

[ Voor 57% gewijzigd door Storm90 op 05-06-2015 13:27 ]


Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Dan moet je uitzoeken waar die exception vandaan komt. Je zou de stack trace kunnen printen in de ErrorController.

Acties:
  • 0 Henk 'm!

  • XyritZz
  • Registratie: Augustus 2003
  • Laatst online: 06-10 15:09
Logisch dus dat je geen 404 krijgt; de error type voldoet niet aan één van de case statements in je error handler.

Je moet de fout dus ergens anders gaan zoeken; kun je een stacktrace boven water halen oid?

I think there is a world market for maybe five computers. - Thomas Watson (1874-1956), Directeur van IBM (1943)


Acties:
  • 0 Henk 'm!

  • Storm90
  • Registratie: September 2008
  • Laatst online: 09-09 15:23
De vorige programmeur heeft een extended class geschreven voor Zend_Acl , die de gebruikers redirect naar een 500 pagina als het root pad niet klopt... Zo te zien wordt werkelijk ieder root pad (http://url.nl/dit) naar de back-end geredirect, op een paar enkele uitzonderingen na.... En als het een "guest" is, krijgt deze een 500 error. Erg vreemd in mijn ogen. Dus ook /test pad wordt geredirect naar een back-end pagina. Dus eens kijken of ik dit kan herschrijven.

[ Voor 25% gewijzigd door Storm90 op 05-06-2015 13:40 ]

Pagina: 1