Dans une installation "de base" Drupal, celui-ci embarque un fichier .htaccess qui définit les règles de réécriture d'URL et de sécurité, et autres paramétrage propre au serveur http Apache.
Le souci principal des fichiers .htaccess étant, par contre, que le serveur http va vérifier à chaque fois sur disque (via la lecture du fichier) le contenu de ce fichier.
Pour améliorer les performances, il est possible de ne pas laisser le serveur Apache lire les fichiers .htaccess, via la directive
AllowOverride None
Si on fait cela, on a alors 2 options :
- soit mettre les directives du fichier .htaccess directement dans la déclaration du VirtualHost
- soit inclure le fichier .htaccess dans la déclaration ; ainsi, il ne sera chargé qu'une seule fois, au démarrage du serveur http.
Un exemple de fichier est donné ci-dessous, en prenant pour hypothèse que Drupal est installé dans le répertoire /var/www/mondomaine.
<VirtualHost *:80> ServerAdmin webmaster@hebinweb.com ServerName www.mondomaine.com DocumentRoot /var/www/mondomaine <Directory /var/www/mondomaine> AllowOverride None Order allow,deny Allow from all Include /var/www/mondomaine/.htaccess Include /var/www/mondomaine/sites/default/files/.htaccess </Directory> ServerSignature Off ErrorLog /var/log/apache2/error.log LogLevel info CustomLog /var/log/apache2/access.log combined </VirtualHost>
L'avantage de cette méthode est que, en cas de modification du fichier .htaccess (par exemple pour des raisons de sécurité lors d'un upgrade Drupal) les nouveautés seront prises en compte juste en redémarrant le serveur http.
On profite donc du meilleur des 2 approches : l'utilisation du fichier .htaccess de Drupal, mais avec un chargement une fois pour toute au démarrage, donc avec un impact moindre sur les performances.