domain.comがあります。ユーザーがログインしている場合、自動的にロードされるはずですdomain.com/option-Xここで、Xはユーザーの事前定義された選択です。
だから、私はindex.phpの上部でこれを行います:
header("Location: /option-X");
ただし、ユーザーがログインしていない場合は、次のような最初のオプションを自動的に選択します。
header("HTTP/1.1 301 Moved Permanently");
header("Location: /option-a");
だから、そうすることの意味に関して2つの質問があります:
301の効果は、検索エンジンが/ option-xではなく/ option-aをインデックス付けすることです。/option-xは検索インデックスに到達できず、インデックスにプラスの影響を与える可能性があるため、これはおそらく良いことです。これを賢く使う場合のみ;-)
リダイレクト後、exit()を配置します。実行する残りのスクリプトを停止する
header("HTTP/1.1 301 Moved Permanently");
header("Location: /option-a");
exit();
これの方が良い:
<?php
//* Permanently redirect page
header("Location: new_page.php",TRUE,301);
?>
コード301を含む1回の呼び出し。同じディレクトリ(「/dir/dir/new_page.php」などではない)内のファイルへの相対パスにも注意してください。
PHP 5.1.2、おそらく以前のバージョンです。
ちょっとしたヒント: http_response_code を使用すると、完全なヘッダーを書くよりも覚えやすくなります。
http_response_code(301);
header('Location: /option-a');
exit;
301などの検索エンジンは、404や他の種類のクライアント側リダイレクトよりも優れており、心配ありません。
CPU使用量は最小限に抑えられます。htaccessを使用してApacheでリダイレクトを試行して処理できるサイクルをさらに節約したい場合は、phpが関与する必要さえありません。サーバーの負荷テストを行う場合は、Apacheに付属のabを使用できます。より堅牢なテストツールを探している場合は、httperfを使用できます。
リダイレクト後は必ずdie()
を実行し、スクリプトの実行中はできるだけ早くリダイレクトを実行してください。これにより、データベースクエリ(もしあれば)が無駄に無駄にならないようにします。それは私があなたに与えることができる1つのヒントです
検索エンジンの場合、301が最適な応答コードです