Tout en essayant de résoudre un problème sur mon site Web, une recommandation concernant le fichier .htaccess que j’ai reçu était
Tout d’abord, vérifiez sur le serveur si tous les modules sont activés, puis supprimez-les.
<IfModule
...></IfModule>
des blocs. Ils exercent une pression inutile sur votre serveur.
Je ne sais pas où devrais-je regarder pour voir si les modules sont actifs - est-ce dans le CMS? dans le fichier httpd.conf? dans les fichiers sur mon serveur? dois-je apporter une légère modification au .htaccess en tant que test? Mais plus que cela, la recommandation ne pourrait-elle pas être appropriée? Merci.
Voici le fichier .htaccess pour lequel la recommandation a été faite:
Options +FollowSymLinks -MultiViews
RewriteEngine on
AddHandler x-httpd-php .html .htm
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType text/css "access plus 2592000 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
</ifModule>
<ifModule mod_headers.c>
<filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\\.(css)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\\.(js)$">
Header set Cache-Control "max-age=216000, private"
</filesMatch>
<filesMatch "\\.(xml|txt)$">
Header set Cache-Control "max-age=216000, public, must-revalidate"
</filesMatch>
<filesMatch "\\.(html|htm|php)$">
Header set Cache-Control "max-age=1, private, must-revalidate"
</filesMatch>
</ifModule>
<ifModule mod_headers.c>
Header unset ETag
</ifModule>
FileETag None
<ifModule mod_headers.c>
Header unset Last-Modified
</ifModule>
RewriteCond %{HTTP_Host} !^(www\.)?foo\.com$
RewriteRule .? http://foo.com%{REQUEST_URI} [R=301,L]
#BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
</IfModule>
# END WordPress
Si PHP est exécuté en tant que module Apache, vous pouvez utiliser la fonction phpinfo()
. Recherchez la section Apache (généralement Apache2handler
) et recherchez la ligne contenant "Loaded Modules":
En supposant que vous vouliez parler de modules Apache, vous pouvez exécuter ce qui suit pour répertorier les modules que vous avez chargés:
apachectl -t -D DUMP_MODULES
Si ces modules ne sont pas chargés, rien ne va se casser sur votre site, mais les paramètres de contrôle du cache ne seront pas optimaux. Donc laissez de côté les ifmodules car vous ne pouvez même pas les charger s'ils ne le sont pas. Le site Apache dit
En fonctionnement normal, les directives ne doivent pas nécessairement être placées dans des sections.
Tout d’abord, vérifiez sur le serveur si tous les modules sont activés, puis supprimez-les <IfModule ...> </ IfModule>.
A propos de votre requête: vous devez vérifier si ces modules sont activés sur le serveur et, le cas échéant, vous pouvez supprimer la condition if de htaccess:
par exemple. Si le module mod_expires.c est activé, vous pouvez supprimer le <IfModule mod_expires.c></IfModule>
et vous ne conserverez que cette partie:
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"
vous ne vérifiez donc plus si ce module est activé car vous l'avez déjà fait.