問題タブ [expires-header]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache - Apache/nginx でルールと Expires-Header を書き換える
今日、ブラウザが静的ファイルをキャッシュするという問題が発生しました。
Apache と Nginx を実行する Plesk サーバー上に Prestashop Web サイトがあります。
Prestashop は、Apache 書き換え URL ルールを使用して .htaccess ファイルを生成します。
そして、Nginx は、expires-header を静的ファイルに追加するようにセットアップされました。
これは、URL が Apache によって書き換えられていない静的ファイルに対して機能します。
URL の例: http://www.domain.tld/modules/homeslider/images/image_name.jpg
ただし、製品の画像については、URL が Apache ルールによって書き直されたものではありません。
URL の例: http://www.domain.tld/156-home_default/image_name.jpg
問題は、nginx の expires-header を、Apache Rewrite ルールによって書き換えられたファイルの URL に適用する方法です。
前もって感謝します。
編集
サーバー管理は Plesk 12.5 によって処理されます。
nGinx は、静的ファイルの処理に使用されます。その構成についてはよくわかりません。
Plesk domain.tld -> Nginx の設定で、「Smart static files processing」と「Serve static files directly by Nginx」にチェックを入れました。そして、「追加の Nginx ディレクティブ」で、expires-header コードを追加しました。それは私がこれに対して行ったすべての変更です。これはデフォルトのplesk設定です。
再編集
nginx 仮想ホスト構成ファイル:
.htaccess - htaccess Expires ヘッダーの変更がブラウザーに反映されない
サイトのすべての JS を 1 週間キャッシュするように設定しました。ただし、より高い頻度で更新する必要がある特定のファイルがあります。したがって、FilesMatch を使用して .htaccess ファイルで例外を発生させました。
例外ファイルは に/sandboxassets/js/ga.js
あり、使用している.htaccessはドキュメント ルート ( /
) にあります。ただし、ブラウザはこの例外を尊重していないようで、問題のファイルに対して次のヘッダーが表示されます。
604800 秒は 1 週間で、.htaccessで定義されているすべての JS アセットのデフォルトですが、 172800 秒 (2 日) にする必要があります。私は何を間違っていますか?また、ブラウザに最新のヘッダーに更新するように指示する方法はありますか? Opera は 31536000 秒 (1 年) を返します。これは、最近すべての JS で 1 週間に変更したものです!
更新: 次のコードを使用すると、サイトがエラー 500 で完全に機能しなくなります。
最初に内部に追加し<IfModule mod_expires.c>
、次にその直後に追加しましたが、毎回同じエラーが発生しました。