1. ホーム
  2. php

PHP による 301 または 302 リダイレクト

2023-08-25 20:52:40

質問

私は、ウェブサイトの立ち上げ段階で次のコードを使用して、ユーザーに メンテナンスのため停止中 ページを表示し、サイトの残りの部分を表示することを検討しています。

検索エンジンに正しい 302 リダイレクトの状態を表示する方法はありますか?それとも、他の .htaccess ベースのアプローチを探すべきでしょうか?

$visitor = $_SERVER['REMOTE_ADDR'];
if (preg_match("/192.168.0.1/",$visitor)) {
    header('Location: http://www.yoursite.com/thank-you.html');
} else {
    header('Location: http://www.yoursite.com/home-page.html');
};

どのように解決するのですか?

に対して 302 Found を、つまり一時的なリダイレクトを行う。

header('Location: http://www.example.com/home-page.html');
// OR: header('Location: http://www.example.com/home-page.html', true, 302);
exit;

恒久的なリダイレクトが必要な場合、別名。 301 Moved Permanently を実行します。

header('Location: http://www.example.com/home-page.html', true, 301);
exit;

詳細については、PHP のマニュアルを参照してください。 ヘッダー関数 Doc . また exit; を使うときは header('Location: ');

しかし、一時的なメンテナンス(検索エンジンにページをインデックスさせたくない)であることを考慮すると、この場合は 503 Service Unavailable をカスタムメッセージで返すことをお勧めします(つまり、リダイレクトは必要ありません)。

<?php
header("HTTP/1.1 503 Service Unavailable");
header("Status: 503 Service Unavailable");
header("Retry-After: 3600");
?><!DOCTYPE html>
<html>
<head>
<title>Temporarily Unavailable</title>
<meta name="robots" content="none" />
</head>
<body>
   Your message here.
</body>
</html>