Bonjour,

J’ai configuré le Virtual Host suivant dans Apache24\conf\extra\httpd-vhosts.conf :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<VirtualHost *:80>
    ServerAdmin mail@gmail.fr
    ServerName site.fr
    DocumentRoot "C:\Base_test\public"
    ErrorLog "C:\Base_test\error.log"
    LogLevel debug rewrite:trace6
 
    <Directory "C:\Base_test\public">
        Options -Indexes
        AllowOverride All
        Require all granted  
    </Directory>
</VirtualHost>
Et j'ai créé le fichier .htaccess suivant dans C:\Base_test\public :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
Tout fonctionne comme prévu, sur Chrome quand je vais sur site.fr/bidule/ ça me renvoie bien sur le fichier index.php.

Mais sur la documentation d’Apache, on peut lire :
« Les fichiers .htaccess ne doivent être utilisés que si vous n'avez pas accès au fichier de configuration du serveur principal. L'utilisation des fichiers .htaccess ralentit le fonctionnement de votre serveur http Apache. Il est toujours préférable de définir les directives que vous pouvez inclure dans un fichier .htaccess dans une section Directory, car elles produiront le même effet avec de meilleures performances.»
Du coup j’ai supprimé le fichier .htaccess et j’ai intégré son contenu dans mon VirtualHost :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<VirtualHost *:80>
    ServerAdmin mail@gmail.fr
    ServerName site.fr
    DocumentRoot "C:\Base_test\public"
    ErrorLog "C:\Base_test\error.log"
    LogLevel debug rewrite:trace6
 
    <Directory "C:\Base_test\public">
        Options -Indexes
        AllowOverride All
        Require all granted  
        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ index.php [QSA,L]
        </IfModule>
    </Directory>
</VirtualHost>
Et là ça ne fonctionne plus, quand je vais sur site.fr/bidule/, ça me dit :
« Not found. The requested URL was not found on this server. »
Dans le fichier error.log, j’ai l’erreur suivante :
AH00128: File does not exist: C:/Base_test/public/bidule/
Je précise que j’ai bien décommenté le module rewrite_module dans httpd.conf.

Voilà je vous remercie pour votre aide.