L'utilisation du framework PHP Laravel avec le serveur HTTP NGINX fonctionne vraiment bien. Du moins, très bien lorsqu'on a trouvé les bons paramètres pour la réécriture des adresses. Considérant que l'information était introuvable sur le Web, je vais vous partager les lignes magiques à inscrire dans vos fichiers de configuration.
Pour un serveur Web Apache, voici le .htaccess
nécessaire pour rediriger automatiquement les requêtes envoyées au fichier index.php
:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule>
Dans le cas de NGINX, le fonctionnement de l' URL Rewriting n'est pas le même. Voici donc les paramètres à insérer dans votre Server Block pour que le module HttpRewriteModule
supporte adéquatement le routage avec Laravel:
if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?/$1 last; break; }
En bref, la consigne vérifie si le nom du fichier inséré après la racine du nom de domaine existe. S'il n'existe pas, la requête est automatiquement juxtaposée après /index.php?/
.
Également, n'oubliez pas de configurer adéquatement votre fichier de configuration application.php
situé dans le répertoire application/config/application.php
.
Remplacez la ligne suivante:
'index' => 'index.php',
... par celle-ci:
Simple, non? Pour en apprendre davantage sur NGINX, utilisé sur 12,18% des serveurs dans le monde, je vous invite à jeter un oeil à leur site Web. Sinon, allez lire mon précédent article Laravel comme framework PHP plutôt que CodeIgniter?!