Voici mon dossier complet :
-
mvcframework dans le répertoire /var/www/html/.
-
mvcframework contient un répertoire public avec index.php qui fait office de frontloader.
-
Je crée un fichier .htaccess dans le répertoire public avec le code suivant :
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)$ index.php?$1 [QSA,L] </IfModule>
-
J'y accède par l'intermédiaire de l'url de l'hôte virtuel mvcframe.local qui est configuré pour diriger vers le dossier public :
<VirtualHost 127.0.0.3:80> ServerName mvcframe.local DocumentRoot /var/www/html/mvcframework/public
<Directory /var/www/html/mvcframework> Options -Indexes +FollowSymLinks AllowOverride All </Directory> ErrorLog /var/www/html/mvcframework/mvc-error.log CustomLog /var/www/html/mvcframework/mvc-access.log combined
</VirtualHost>
-
Lorsque j'accède à http://mvcframe.local o http://mvcframe.local/ Le contenu du fichier index.php est affiché dans le dossier public index.php comme il se doit.
-
Lorsque j'accède à http://mvcframe.local/?posts/hello qu'il produit :
Requested URL = posts/hello
-
Mais quand j'accède http://mvcframe.local/posts/hello en enlevant ?, ça donne :
Not Found The requested URL was not found on this server.
Apache/2.4.41 (Ubuntu) Server at mvcframe.local Port 80
J'essaie de trouver la solution en cherchant pendant 2 heures et je n'ai toujours pas trouvé la solution.