0

このような画像やその他のファイルを処理するマルチサイトCMSがあります。

www。(またはwww。以外)variable-domain.com/files/*にある画像やその他のファイルを.htaccessでキャッシュするにはどうすればよいですか?

これにより、500エラーが発生します。私はいくつかを取り除いた..これが私が現在機能しているものです(ディレクトリとコンテンツの部分を除いて-それが含まれているとエラーがスローされます)。

#
#   Force Browser Cache
#
<ifmodule mod_expires.c>
ExpiresActive On

<filesmatch "\.(jpg|gif|png|css|js)$">
    ExpiresDefault "access plus 1 year"
</filesmatch>

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf)$">
    Header set Cache-Control "max-age=2592000"
</FilesMatch>

<FilesMatch ".(js|css|pdf|txt)$">
    Header set Cache-Control "max-age=604800"
</FilesMatch>

<Directory "/home/aiwebsystems/public_html/uploads">
    <FilesMatch "\.(gif|jpg|png|js|css)$">
        ExpiresDefault "access plus 1 year"
    </FilesMatch>
</Directory>

</ifmodule>

これのすべてのサブディレクトリも含める必要があります...

助けてくれてありがとう!

4

3 に答える 3

2

Apacheのmod_expiresを使用する

たとえば、.htaccessに次のように入力します。

ExpiresActive On

<Directory "/path/to/public_html/files">
    Options FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
    ExpiresDefault A300
    <FilesMatch "\.html$">
        Expires A86400
    </FilesMatch>
    <FilesMatch "\.(gif|jpg|png|js|css)$">
        Expires A2592000
    </FilesMatch>
</Directory>

A300は、ユーザーがキャッシュしたコピーがアクセス後300秒で期限切れになることを意味します。(A86400はアクセスの翌日、A2592000はアクセスの1か月後です)

サーバー側のキャッシュを意味する場合は、オペレーティングシステムが最近「ページング」アルゴリズムを使用してキャッシュするので幸運です:http://en.wikipedia.org/wiki/Paging

于 2011-11-08T20:30:22.570 に答える
1

<Directory>htaccessでは許可されていません。

有効期限が設定された新しい.htaccessファイルを作成し、「uploads」ディレクトリ内に配置するだけです。これはあなたが達成しようとするのと同じ効果があります

于 2011-11-10T17:48:12.163 に答える
0

拡張子がないので、どれも機能しませんでした。最後にコードを変更すると、最後のURIパラメーターとして画像IDではなくファイル名を使用してうまく機能するようになりました。

于 2011-11-10T16:52:49.443 に答える