0

現在、ドメイン上にサイトがあります。現在このサーバーのパスワードで保護されたサブディレクトリにある新しいサイトに切り替えたいと思います。

「サイトのメンテナンスが進行中です」ページがあります。「index.php」の代わりにデフォルトで表示されるようにApacheを設定したいと思います。また、切り替えを行う間、サーバー上の他のすべてのものをパスワードで保護したいと思います(ただし、これは必須ではないと思います)。

.htaccess私はこれを次のファイルに追加しましたpublic_html

DirectoryIndex siteDown.php

残念ながら、これは何もしません。私はうまくナビゲートすることができhttp://www.example.com/siteDown.phpます。

私は共有ホスティングの設定をしています。それは問題でしょうか?

4

3 に答える 3

1

共有ホストには通常、.htaccess処理をオンにできる何らかのコントロールパネルがあります。

Directory Indexは最終的に次のようになるエントリのみを処理するため、mod_rewriteルールを使用する必要があります。

http://www.example.com/

DirectoryIndexを変更した場合でも、http://www.example.com/this_other_page.htmlは引き続き正常に処理されます。

さらに、クロールボット、キャッシュ、およびその他のエンティティがそのページをサイトの「存在」としてキャッシュしようとする可能性があるため、実際には503エラーを処理する必要があります。

于 2009-11-15T18:05:45.943 に答える
0

一部の共有ホストでは、.htaccess が許可されていません。ホスティングの TOS をチェックして許可されているかどうかを確認するか、.htaccess に「ガベージ」(「asdasdasd」など) を入れてください。ページが正常にロードされる場合、サーバーはページを読み取っていません。内部サーバー エラー (500) が発生した場合は、有効になっています。

.htaccess を有効にしていない場合は、php を使用してリダイレクトできます。index.php の最初の行で:

header("Location: http://domain.com/siteDown.php");
exit();

これは最善の解決策ではありませんが、意図したとおりに機能します。また、Web サイトの構造が常に index.php クエリ文字列 ( などindex.php?page=home) に基づいている場合、すべてのページで機能します。

于 2009-11-15T18:07:32.710 に答える
0

index.php ページの先頭に次のようなものを追加してはいかがでしょうか:

if($site_down == TRUE)
{
    print "My site is down";
}

次に、データベースやフラット ファイルなど、状況に最適な場所に変数を保存します。このフラグをデータベースに追加すると、定期メンテナンスや役立つメッセージの表示などを設定することもできます。これは、MySQL と PHP でホストされているすべてのアカウントで機能し、シャットダウンする必要がある場合に最適です。ファイルを移動する必要はありません。

以下は非常に大まかな疑似コードなので、コピーして貼り付けないでください。ただし、これでアイデアがわかります。

$sql = "SELECT * FROM site_maintenance WHERE down_start >= NOW() AND down_end <= NOW() ORDER BY down_start ASC, down_end ASC LIMIT 1;";
// GET YOUR RESULT SET 
if( COUNT($result) == 1 )
{
    print "Site Down: {$row->reason}";
    exit;
}
于 2010-02-03T20:32:21.193 に答える