0

Web サイトのメンテナンス ページを設定したいと考えていました。

そのために、最初に実行するスクリプト (MY_Controller) で、DB のフィールドをチェックします。メンテナンス中であれば、ユーザーをメンテナンスページにリダイレクトしたいと思います。これは機能します:

redirect("maintenance", 'location');

これが私の問題です。ヘッダー コードを 503 に設定して、ボットが実際のページの代わりにメンテナンス ページのインデックスを作成するのを回避したいと考えています。しかし、私がこれを行うたびに:

redirect("maintenance", 'location', 503);

メンテナンス ページが読み込まれない、URL が変更されない...

何か案が ?

よろしくお願いします!

4

2 に答える 2

1

これは古い質問ですが、誰かがこれに出くわすかもしれません。

CIの関数を使用しredirect()てメンテナンス ページを表示し、503 応答コードを使用しようとしました。これがメンテナンス ページの正しい方法だと感じたからです。

stackoverflow で 307 コードでリダイレクトできる回答を見つけましたが、それでもコード 503 がブラウザに返されます。

トリックは、ビュー ファイルのメンテナンス ページのコンテンツの後にヘッダーを設定することです。(理想的ではありませんが、503 コードを返します)

<?php
    header('HTTP/1.1 503 Service Temporarily Unavailable');
    header('Status: 503 Service Temporarily Unavailable');
    header('Retry-After: 3600');
?>
于 2015-10-07T14:05:28.003 に答える
1

CI が提供する redirect() 関数を使用して 503 HTTP ステータスを設定することはできないと思います。ただし、301 コード (一時的なリダイレクト) を設定することはできます。つまり、検索エンジンはページが一時的にリダイレクトされていることを認識し、メンテナンス ページのインデックスを作成しません。

詳細はこちら: http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html

于 2013-11-01T12:53:43.390 に答える