web-dev-qa-db-ja.com

ロード時間を短縮するためにリダイレクトをキャッシュ可能にするにはどうすればよいですか?

Google PageSpeedはこう言っています:

ランディングページのリダイレクトを避ける

サイトの訪問者のページ読み込み時間を短縮するには、できるだけ多くのランディングページリダイレクトを削除し、必要に応じて必要なリダイレクトをキャッシュ可能にします。

http://xyz.com/http://www.xyz.com/へのキャッシュ可能な(30日間)リダイレクトです

私はPHPを使用しており、定義しました:

if ($_SERVER['SERVER_NAME']!="localhost") {
define('SITE_URl', "http:// www.abc.com/");
}

..だからキャッシュ可能なリダイレクトを行う方法を教えてください?

3
user2511667

最初にリクエストがWebサーバーによって受信され、次にPHPコードが解釈されてから結果が返されるため、サーバーサイドスクリプト(つまり、PHP)を使用してリダイレクトを行う最速の方法ではありません。クライアントに。

代わりに、PHPを実行する必要をバイパスして、Webサーバー構成でリダイレクトを行うことができます。たとえば、Apacheでは、 mod_rewrite モジュールを使用できます。次に、ここで説明するように、リクエストのキャッシュを追加できます。 Apache-Caching Guide

ただし、Webサーバーのリダイレクトよりもさらに高速に、CNAMEを使用してDNSレベルでこれを行うことができます(パスなしで別のホストに転送している場合)。

www.old-abc.com IN CNAME www.abc.com.

xyz.com( 'www'なし)からwww.xyz.com( 'www'付き)へのリダイレクトに関してPageSpeedから返されたメッセージについては、上記のいずれかのアプローチを使用できますが、DNSを使用すると高速になり、負荷が軽減されますWebサーバー上で、キャッシュの必要性を無効にします。

2
dan

Googleがキャッシュ可能なリダイレクトを参照する場合、httpステータス「301」リダイレクト(Moved Permanently)対「302」リダイレクト(Found)または「307」(Temporary)を参照していると思います。

httpsステータス定義の詳細を参照してください。

したがって、PHPを使用して the header()function 経由でリダイレクトを行う場合は、次のようなものを使用する必要があります。

header("Location: /foo.php",TRUE,301);
0
AllInOne