J’ai créé une application PHP Slim et je l’ai publiée sur mon serveur Web.
Les routes ne sont disponibles que si je navigue directement via la page index.php
par exemple example.com/index.php/login
et /index.php/signup
les deux rendent les vues attendues
cependant, si je omet d’index.php et navigue jusqu’à `example.com/login ‘ou’ example.com/signup ‘, je reçois un 404
Mon fichier .htaccess
se trouve dans le même répertoire que index.php
public/ ├── .htaccess ├── index.php
le dossier public
est configuré comme DocumentRoot /var/www/example.com/public
dans apache
Mon fichier .htaccess
contient les éléments suivants:
Options -MultiViews RewriteEngine On # Redirect Trailing Slashes... RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]
Des suggestions pour réparer mon routage?
Slim recommande d’utiliser ces règles pour Apache. (.htaccess)
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [QSA,L]
Vous devez définir la directive AllowOverride sur “All” dans la configuration Apache et vous assurer que “/ public” est votre répertoire virtuel racine.