2011-10-04 11 views
7

特定の(特定の)ページ、PHPまたはhtaccessを高速にリダイレクトする方法はありますか?多くの異なるページがトラフィックの多いサイトでこのようなリダイレクトを必要とする可能性があることを考慮してください。例えば速いものです:PHPが呼び出される前に高速リダイレクト、PHPまたはhtaccess?

PHP(関与なしデータベースクエリ、単なるプレーンなPHPのリダイレクト)

header("Location: /new.php",TRUE,301); 

または

htaccessの

redirect 301 old.php http://site.com/new.php 

答えて

6

に依存します。一般に、PHPを呼び出すオーバーヘッドがないため、.htaccessは高速になります。ただし、ドキュメントのルートレベルで1つの.htaccessファイルに1000個のリダイレクトがある場合、Apacheはすべてのページの読み込み時にすべてをチェックする必要があります。つまり、index.phpを提供するのではなく、1000個の正規表現チェックを行う必要があります。、次に index.phpを指定します。全体的に言えば、多くのリダイレクトがある場合は、はリダイレクトされないページが多いので、PHPでそれをしてください。この場合、リダイレクトする必要のないページには余分なオーバーヘッドはありません。

7

.htacessは、処理され、もしあなたがそれを作ることができるなら、それは確かに速くなります。

+2

ただし、 .htaccess自体はヒットごとにロード/解析されるので、PHPは状況によっては(おそらくは複雑な.htaccessを1つ)、特にキャッシュを使用すると高速になることがあります。 –

+1

複雑な.htaccessがある場合は、とにかく解析され、PHPの処理に時間が追加されるので、そこには何の利益もありません。 – Einacio

2

htaccessが使われるならばPHPの処理が始まる前にApacheは処理します。私はどちらか一方を使用してベンチマークを行っていませんが、両方が存在する場合、htaccessは常により高速になります。

また、htaccessのリダイレクトはregexを使用して複数の古いファイルに適用することができますので、作業が少なくて済みます。

+0

htaccessは常に高速です...しかし、 htacessを通る興味;あなたのページの99%がリダイレクトされていないのにあなたの.htaccessに1000行ある場合:すべてのリクエストに対して.htaccessを解析すると、PHPがリダイレクトされないという利点があるページの1% – spiritoo

関連する問題