2017-10-15 5 views
1

J'ai ajouté la directive .htaccess dans le fichier d'accès racine de Joomla. Maintenant, il fonctionne comme prévu, sauf pour les fichiers dans certains dossiers. J'ai vérifié le dossier pour le fichier où il n'est pas appliqué, mais il n'y a aucun autre fichier .htaccess qui peut remplacer la valeur par défaut .htaccess dans la racine. Les fichiers js et css sont des exemples de fichiers auxquels ils ne sont pas appliqués.La directive Htaccess ne s'applique pas à tous les fichiers

  1. Ces fichiers proviennent de la même source que celle du serveur tiers.
  2. Ces fichiers ne contiennent aucune chaîne de requête.

La directive J'utilise est comme ceci:

ExpiresActive On 
ExpiresByType image/jpg "access plus 1 year" 
ExpiresByType image/jpeg "access plus 1 year" 
ExpiresByType image/gif "access plus 1 year" 
ExpiresByType image/png "access plus 1 year" 
ExpiresByType text/css "access plus 1 month" 
ExpiresByType application/pdf "access plus 1 month" 
ExpiresByType text/x-javascript "access plus 1 month" 
ExpiresByType application/x-shockwave-flash "access plus 1 month" 
ExpiresByType image/x-icon "access plus 1 year" 
ExpiresDefault "access plus 2 days" 

ce que je peux vérifier pour savoir, ce qui peut être Outrepasser la directive ci-dessus.

+0

Qu'en est-il de la configuration de votre serveur Apache et de votre hôte virtuel? – Webdesigner

+0

C'est très bien, car j'ai beaucoup d'autres sites sur le même serveur et je n'ai pas ce problème sur d'autres sites. – Joshi

Répondre

0

Si ces ExpiresByType ne sont pas honorés, cela signifie que ces fichiers ne sont pas servis par Apache, ou qu'il existe un autre remplacement quelque part.

Certains plugins joomla peuvent utiliser css et js dynamiquement (pour ajouter de la compression ou de l'expiration), c'est donc là que vous devriez d'abord regarder. Certains serveurs Web utilisent le proxy nginx avant Apache et les fichiers css/js sont fournis par nginx et non par Apache. Regardez donc vos fichiers de log apache que c'est Apache qui vous a servi ces fichiers. Regardez également à nouveau à propos de la configuration de votre hôte virtuel. Ne pas avoir le problème sur d'autres sites sur le même serveur ne signifie pas que le remplacement n'est pas sur votre configuration vhost.

Désactiver PHP, redémarrer le serveur, charger ce fichier css/js et voir s'il y a des changements. (Ceci est pour tester si ces fichiers sont traités par un script php) Essayez de charger un fichier css inexistant et analysez votre journal d'accès. Arrêtez Apache et chargez les fichiers css (ceci pour vérifier si vous avez un proxy nginx ou quelque chose comme ça).