2017-10-15 10 views
1

.htaccessディレクティブをJoomlaのルートアクセスファイルに追加しました。 これは、特定のフォルダ内のファイルを除き、期待どおりに動作しています。 適用されていないファイルのフォルダを確認しましたが、ルートにデフォルトの.htaccessを上書きできる他のファイルはありません。.htaccess 適用されないファイルの例は、jsおよびcssファイルです。すべてのファイルにHtaccessディレクティブが適用されない

  1. これらのファイルは、サードパーティのサーバーからのものではないソースと同じものです。
  2. これらのファイルにはクエリ文字列が含まれていません。

私が使用していますディレクティブは、このようなものです:

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" 

私は上記のディレクティブを上書きすることができるものを、見つけるためにチェックすることができる他に何。

+0

Apacheサーバーと仮想ホストの設定はどうなりますか? – Webdesigner

+0

同じサーバー上に他の多くのWebサイトがあるので、これは問題ありません。この問題は他のサイトにはありません。 – Joshi

答えて

0

これらのExpiresByTypeが受け入れられない場合、これはこれらのファイルがApacheによって提供されないこと、またはどこか別の上書きがあることを意味します。

いくつかのjoomlaプラグインは、(圧縮または有効期限を追加するために)cssとjsを動的に処理することがあります。 一部のWebサーバはApacheより前にnginxプロキシを使用し、css/jsファイルはApacheではなくnginxによって提供されます。だから、あなたのApacheログファイルを見て、あなたがこれらのファイルを提供したのはApacheだということです。 仮想ホストの設定についてもう一度見てください。同じサーバ上の他のサイトで問題が発生していないとしても、オーバーライドが仮想ホストの設定にないことを意味するわけではありません。

PHPを無効にしてサーバを再起動し、これらのcss/jsファイルを読み込み、変更があるかどうか確認してください。 (これは、これらのファイルが任意のPHPスクリプトによって処理されているかどうかをテストすることです) 存在しないCSSファイルを読み込み、アクセスログを分析してみてください。 Apacheをシャットダウンしてcssファイルを読み込みます(これはnginxプロキシなどがあるかどうかを確認するためのものです)。

関連する問題