問題タブ [mod-expires]
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.
wordpress - .htaccess 経由で「Expires」ヘッダーから URL を除外する
これは、mod_expiresと関連するRewriteRuleの設定です。彼らは完璧に機能します!しかし、キャッシュされない特定の URL があります。そのための正規表現は^/?nocache/
. そのディレクトリ ( /nocache/
) は物理的に存在しません。それへのリクエストは、他のすべてのディレクトリと同様に、「index.php」によって処理されます。
<LocationMatch>
私が最初に考えたのは、その周りにa を追加することでしたが、ドキュメントによると、「.htaccess」コンテキストでは許可されていません。A<FilesMatch>
は許可されますが、ファイルが物理的に存在する必要があると思います ((本当ですか?))。
何か案は?
php - .htaccess キャッシュ ヘッダーをオーバーライドする PHP 構成
jpg、png、css などのサイトの静的ファイルのキャッシュを設定しようとしましたが、これまでのところ成功していません。PHP の構成が .htaccess の構成を引き継いでいることがわかりました。
httpd.conf で mod_expires.so がコメント解除されていることを確認しました。
.htaccess でフォローしようとしましたが、無駄でした。
試しても成功しなかった
次に、php.ini がsession.cache_limiter = nocache
変更されていることがわかりました。
この設定を php.ini で変更して apache を再起動した後、画像の応答ヘッダーが次のように変更されていることがわかりましたsession.cache_limiter = public
。session.cache_expire=180
やりたいことは「アクセスプラス1ヶ月分」の画像とcss/jsファイルをキャッシュすることです
どんな提案でも大歓迎です。
lighttpd - mod expire を lighttpd で使用する方法
lighttpd でサイトを実行しており、ここでいくつかのテストを実行しています: https://developers.google.com/speed/pagespeed
私は89ポイントを獲得しましたが、グーグルは次のように言っています:
一部の css ファイルでは「HTTP ヘッダーを使用する」。
どうすればそれを行うことができますか、キャッシュをhtaccessファイルに入れることができますか? そして、私はlighttpdについて非常に新しいので、これらをそこに入れる方法。
ありがとうございました。
wordpress - mod_expires を EC2 Bitnami イメージで動作させることができません
クライアントの Web サイトに有効期限を設定することができませんでした。EC2 インスタンスで bitnami クラウド イメージを実行しています。私が試したこと:
- 1. mod_expires モジュールを httpd.conf で apache にロードする
- 具体的には: "LoadModule expires_module modules/mod_expires.so"
- 2. wordpress プラグイン「W3 Total Cache」を利用する
- このプラグインは mod_expires モジュールを検出できませんが、bitnami に同梱されていることは確かです
- 3. .htaccess を直接編集する
- ExpiresDefault で ExpiresActive を使用する「アクセスと 90 日間」
- 4. チュートリアルはこちら: http://www.theitbaby.com/wordpress/2013/10/14/optimizing-bitnami-for-pagespeed-insights-and-gtmetrix/
奇妙なことに、上記のチュートリアルで提供されているコードを使用すると、Apache が不平を言い、ExpiresByType が 2 つの引数を取るというエラーが表示されます。「アクセスプラス9ヶ月」を「A2592000」に変更すると元に戻るようです。
試してみる選択肢が残っておらず、希望がありません。何か案は?
解決策: 1) mod_expires を使用するように .htaccess を構成します [ここで確認できます] http://www.inmotionhosting.com/support/website/htaccess/apache-module-mod-expires ) 2) httpd-app.conf を次のように変更します。 AllowOverride すべてを使用
apache - htaccess / mod_expires - 特定のファイルのキャッシュ
わかりました、ブラウザのキャッシュ メモリをファイルで管理する方法について多くの Web サイトをチェックしましたが、.htaccess
まだよくわかりません。
特定のファイルを 1 か月間キャッシュしたい。あとは、毎回リフレッシュしてもらいたいです。だから私は試しました:
しかし、なかなか思うように進まない…。
HTML は正しくキャッシュされませんがjquery-ui.css
、1 か月間キャッシュする必要がある のような特定のファイルもキャッシュされません。
とにかく、これ.htaccess
でよろしいでしょうか?
apache - vBulletin のコンテンツが更新されない - mod_expires/Apache の問題?
本当に長い質問で申し訳ありません。私はしばらくこれをトラブルシューティングしてきましたが、すべてを共有することにしました。
私は vBulletin 5.1.5 を実行しています (これについては苦労しないでください)。問題が vBulletin ソフトウェアにあるのか、それとも Apache の問題なのかを調べようとしています。
システム: vBulletin 5.1.5、Apache 2.4.7、mod_expires、memcached
この問題は、ローカル ブラウザーに関係なく発生します (Chrome と Firefox の両方で発生します)。
vBulletin 5.1.4 から 5.1.5 にアップグレードしたところ、すぐにこの問題が発生し始めました。vBulletin は、これは Apache サーバーの問題であり、コンテンツ/ヘッダーのみをキャッシュなしとして設定するか、そのままにしておくと述べています。
誰かがスレッドに返信を投稿してからメイン フォーラム ページに戻った場合、新しい返信は最新として表示されません (トピックにはまだ 0 件の返信が表示されます)。その後スレッドに戻っても、ページを更新するまで返信は表示されません。
vBulletin システム キャッシュをクリアし、ドメインのすべての Cookie を削除し、ローカル キャッシュをクリアしました。
Chrome 開発者ツール ([ネットワーク] タブ) を使用すると、次のように表示されます。
ページが更新されたとき、vBulletin は HTTP ヘッダーの Date: をリセットすべきではありませんか?
元の投稿は 15:12:05 UTC に作成します。15:12:10 UTC の直後に返信します。ページの HTTP ヘッダーには、引き続き Date: が 15:12:05 UTC として表示されます。ページを離れてメイン フォーラム ページに移動し、投稿に戻ります。更新するまで、HTTP Header Date: as 15:12:05 UTC が表示されます。そのため、ページに更新があることをクライアントに通知していません。これは vBulletin によって設定されていますね。ページは動的に作成されているので?
構成ファイルでデバッグをオンにして、タイムスタンプを調べました ((レンダリングされた各ページの下部にある vbulletin によって生成されます):
最初の投稿 - 現在の時間: 2015 年 2 月 4 日 (水) 11:31:39 -0500 コメント後 - 現在の時間: 2015 年 2 月 4 日 (水) 11:31:39 -0500 フォーラムのリンクをクリック - 現在の時間: 2015 年 2 月 4 日 (水) 11 :31:03 -0500 更新をヒット - 現在時刻: 2015 年 2 月 4 日水曜日 11:33:12 -0500 トピックをもう一度クリック - 現在時刻: 2015 年 2 月 4 日水曜日 11:31:39 -0500 更新をクリック - 現在時刻:水曜日、2015 年 2 月 4 日 11:35:15 -0500
フォーラムのリンクをクリックすると、(新しい投稿をしたにもかかわらず) 過去に戻ってしまうことに注意してください。リフレッシュして、現在の時間に戻ります。
次に、トピックをもう一度クリックすると、タイムスタンプが最初の投稿時間と一致します。コメントを作成した後の時間ではありません。もう一度更新すると、現在の時刻に戻り、返信が表示されます。
ログを見る:
- 新しいスレッド GET /forums/new-content/44 HTTP/1.1 をクリックします。
- 投稿を POST /forums/create-content/text/ HTTP/1.1 にします
- ページが更新されます GET /forums/forum/general/test-forum/28305-this-is-another-new-topic
- 返信を追加 POST /forums/create-content/text/ HTTP/1.1
- 返信が表示されます POST /forums/create-content/loadnode HTTP/1.1
- 投稿の親フォーラムに行きます GET /forums/forum/general/test-forum HTTP/1.1
- 投稿、ページ表示、POST /forums/ajax/api/node/incrementNodeview HTTP/1.1 をクリックしてから、GET /forums/foru...-another-testt HTTP/1.1 をクリックします。
すべてのステータス コードは 200 です。アイテム 6 と 7 には、Cache-Control: max-age=3600 と元の投稿の日付と時刻があります。
サーバーとクライアントの間で有効期限がどのように機能するかについて、私は確信が持てないでしょうか? クライアントからサーバーへのプロセスは、元のページをプルダウンしてローカルにキャッシュするようなものではないでしょうか。後で同じページをリクエストし、ヘッダーのリクエストをサーバーに送信して、ページに新しい時間があるかどうかを確認し、一致する場合はローカル コピーをプルし、一致しない場合は新しいコピーを送信します。Apache には、ページが更新されたかどうかがわかりません。これは、vBulletin によって生成されたものですよね?
何かご意見は?
apache - Apache mod_expire が機能しない
以下で説明するように Apache mod_expire を構成しましたが、機能しませんでした。
.htaccess ファイルにこのブロックを追加しました。 ExpiresByType 画像/jpg A2419200
シンボル A2419200 を texrt "allow plus 1 mounth" に置き換えようとしましたが、これも機能しません。
また、.htaccessファイルからこのセクションを切り取り、別のファイルexpire.confに保存して、ディレクトリconf.dに保存しようとしました-これも機能しませんでした
コメントブロックしたら
500 エラーが発生しましたが、コマンドhttpd -M (ロードされたモジュールのリスト) は次のように表示されます。
mod_expire が読み込まれます。
私は何を間違っていますか?
私のhttpd.confファイル(コメントを削除しました):
私の .htaccess ファイル: