Sto testando la mia applicazione Zend Framework usando Selenium e PHPUnit. Ho un test che deve aprire un URL che contiene un URL codificato.Zend Framework: URL codificato con decodifica Apache invece di passare l'URL codificato?
$redirectToLocation = urlencode('/myothercontroller/action'); // %2Fmyothercontroller%2Faction
$this->openAndWait('/controller/action/thenRedirectTo/' . $redirectToLocation);
Ma quando ho eseguito la mia prova, il browser provato ad aprire l'URL decodificato:
/controller/action/thenRedirectTo//myothercontroller/action
Cosa devo fare per ottenere il selenio per aprire l'URL codificato?
Aggiornamento: In realtà ... si rivela il selenio sta facendo il suo lavoro, ma sembra come se Apache sta decodificando l'URL prima che arrivi al controller:
The requested URL /controller/action/thenRedirectTo//myothercontroller/action was not found on this server.
Come devo risolvere questo problema ?
Aggiornamento: Ecco un'intera conversazione sullo stesso problema che sto riscontrando: http://old.nabble.com/URL-Encoding-td18850769.html. La loro soluzione alternativa era codificare l'URL in base64, ma non è abbastanza buono per me. Posso usare questa soluzione a breve termine, ma voglio sapere qual è la vera causa di questo problema, quindi posso eliminarlo.
Aggiornamento: Ho un collega che pensa che ci possa essere un problema con il modo in cui Zend Framework instrada la richiesta. Pensi che potrebbe essere il caso?
Non l'ho provato, ma potrebbe funzionare. Tuttavia, preferirei che Apache funzionasse correttamente, piuttosto che modificare il mio codice. – Andrew
È una brutta soluzione. Sono d'accordo che Apache non dovrebbe scherzare con questo. Sicuramente questo è configurabile in qualche modo? – mcv