.htaccess、YSlow、および「Cookieのないドメインを使用」
質問
YSlowの測定可能なものの1つは、Cookieのないドメインを使用して静的ファイルを提供することです。
"ブラウザが静的 画像とクッキーを送信します 要求、サーバーは無視します クッキー。これらのクッキーは不要です ネットワークトラフィック。これを回避するには 問題、静的であることを確認してください コンポーネントは Cookieなしのリクエスト サブドメインとそこでのホスト。" - Yahoo YSlow
これは、 www.example.com/images を static.example.com/images に移動するとパフォーマンスが向上する可能性があると解釈しています。
>これは簡単ですが、コンテンツ管理システム(Joomla / WordPress)内でこれらの画像を簡単に参照およびリンクできる便利な機能が失われます。
.htaccessを使用して、 www.example.com 上の特定のフォルダーに対するすべてのリクエストを static.example.com 上のフォルダーにリダイレクトすることはできますか?この方法は、CMSをだまして、画像が独自のドメインのデフォルトの場所にあると思わせますか?
解決
すべてのリクエストをリダイレクトするために.htaccessを使用することは可能ですか www.example.com上の特定のフォルダーを 代わりにstatic.example.com?
可能ですが、逆効果です—クライアントはHTTPリクエストを作成し、リダイレクトレスポンスを取得してから、別のHTTPリクエストを作成する必要があります。
これは、保存された1行のCookieデータよりもはるかに費用がかかります!
この方法もCMSをだまして画像を考えさせますか 独自のドメインのデフォルトの場所にありましたか?
いいえ。
他のヒント
これは簡単ですが、私はそうします 私の中で便利な能力を失う コンテンツ管理システム (Joomla / WordPress)で簡単に参照できます これらの画像へのリンク。
できることは、Joomlaでこれらの参照を動的に作成するプラグインを作成することです。
たとえば、記事に{dinamic_path path}を入力すると、提供されたパスに「static.example.com/images」が追加されるプラグインがあります。そのため、サーバーパスを変更する必要があるたびに、プラグインを変更するだけです。既にデータベース内にあるリンクについては、phpMyAdminを使用して、この構造内でリンクを変更することができます。
TinyMCEのWYSIWYGの機能は引き続き失われますが、代替手段です。
理論上は、images.example.comなどのimagesフォルダーを直接指す仮想ドメインを作成できます。次に、CMS(できればテーマレイヤー)で、imagesフォルダーを指すパスをサブドメインへの絶対パスに置き換えることができます。
リダイレクトは、単にそのままにしておくよりも、はるかに多くのネットワークトラフィックとはるかの遅延を引き起こします。
リクエストをリダイレクトしますが、クライアントはまだクッキーをサーバーに送信しているので、実際には何もしませんでした。 Cookieが機能しないためには、Cookieを保存していないドメインからファイルに直接アクセスする必要があります。
本当にしたいのは、設定したかもしれないexample.comドメインのcookieを拾わないように、static.example.com / imagesではなくstaticexample.com/imagesを使用することです。単純なapacheサーバーなどを使用してそのドメインからサーバーイメージを作成するだけであれば、セッションCookieを返さないようにそのサーバーを構成できます。
リダイレクトは非常に悪い考えです。 Cookieを使用するとパフォーマンスが低下しますが、リダイレクトなどのサーバーへのラウンドトリップが原因で、はるかに深刻なパフォーマンスの問題が発生します。
以下で成功しました:
<FilesMatch "!\.(gif|jpe?g|png)<*>quot;>
php_value session.cookie_domain example.com
</FilesMatch>
その意味は、Cookie情報に画像を設定しない場合です。 その後、画像はサーバーでCookieを使用しません。