Pour rediriger les requêtes qui pointent sur un fichier ou un répertoire qui n'existe pas vers /index.php, avec Nginx et Zend Framework on utilise traditionnellement :
if (!-e $request_filename){
rewrite ^.*$ /index.php break;
}
Mais ce n'est pas optimal car il est recommandé d'éviter if.
On peut le remplacer par try_files
:
location / {
try_files $uri $uri/ /index.php?$args;
}
Mise à jour du 2/03/12 : il faut ajouter ?$args
sinon les paramètres GET ne sont pas transmis à PHP.
On teste d'abord si la requête correspond à un fichier, puis à un répertoire (notez le / derrière $uri). Si il n'y a pas de fichier ou de répertoire correspondant, on redirige vers /index.php.
Vous pouvez également consulter la page suivante pour en savoir plus sur Nginx + Zend Framework.
Ajouter un commentaire