ユーザーが私のWebサイトexample.com
を入力すると、「優先」言語が検出され、(301 Moved Permanentlyリダイレクトを使用して)example.com/en/
(英語)、example.com/it/
(イタリア語)にリダイレクトされます。など.
それは完全に動作しますが、Google Page Speedツールを使用してWebサイトを分析すると、 以下のアドバイス が得られました。
多くのページ、特にモバイルページは、ユーザーを別のURL、たとえば
www.example.com
からm.example.com
にリダイレクトします。このリダイレクトをユーザーのブラウザーでキャッシュ可能にすると、サイトを繰り返し訪問するユーザーのページ読み込み時間を短縮できます。
そして後で
キャッシュライフタイムが1日の302リダイレクトを使用することをお勧めします。リダイレクトには、Vary:User-AgentヘッダーとCache-Control:privateヘッダーを含める必要があります。
だから私の質問は、どのようにPHPで「キャッシュ可能な」リダイレクトを行うことができますか?以下で十分でしょうか?
header("HTTP/1.0 302 Moved Temporarily");
header("Location: example.com/whatever");
exit;
これはトリックを行う必要があります:
header("HTTP/1.0 302 Moved Temporarily");
header("Location: example.com/whatever");
header("Cache-Control: private");
header("Vary: User-Agent, Accept-Encoding");
exit;
Varyヘッダーの推奨事項は、 このGoogle開発者ページから キャッシュの最適化(およびIE <9の問題)です。 キャッシングネゴシエートされた応答 RFC2616(ヘッダーフィールド定義)の背景には、Cache-control-privateの背景もあります。 this stackoverflow page のVary:Headerについてのさらなる議論。
また、役に立つかもしれません: 多地域および多言語サイト および 多言語Webサイトの操作 。