「index.html」を更新するために「index20050101.html」を事前にアップしておく。
↓
指定した日(例として1月1日)になるとファイル名を自動的に変更し更新。
↓
古いファイルは「index.html_bakup20050101」のようにバックアップとして置いておく。
という感じです。サーバーになにかしらのプログラムを置く必要があるかと思っていますが、他の方法でも実現できればかまいません。
UNIXサーバであればシェルスクリプトを用意しておき、cronという指定時刻でプログラムを起動してくれるデーモンというものを利用すると簡単です。
cronから毎晩0時にシェルスクリプトを呼び出すように設定しておき、シェルスクリプトのほうでは「今日の日付のファイルがあるか」を判断させます。なければプログラムを終了します。
あった場合は、まずcpコマンドでバックアップを取り、次に指定のファイルをcp -fコマンドで強制的に上書きコピーをします。これは一瞬でも「ファイルが存在しない」状態を作らないようにするためです。
あとは、不要なファイルを削除するなり、バックアップしたファイルを圧縮するなりすれば良いと思います。
ファイル名を入れ替えるのではなくて、PerlやPHPで日付から生成したファイル名と一致するというやり方もあります。
ファイルの内容を表示するための「index.php」とその日付に表示したい「index20050101.txt」を事前にアップする。
↓
index.phpにアクセスがあったとき日付からファイル名「index20050101.txt」を生成して、ファイル名が一致するファイルをインクルードする。
この手法であれば、特にファイル名等を変更する必要もありませんし、日付の条件にあうファイルがない場合は標準のページを呼び出すなどもできます。
なるほど。ありがとうございます。
フリーやシェアウェアのプログラム、市販ソフトウェアなど、サーバーにこれをインストールしたらできるよ、などはないでしょうか。
サーバー内のファイルがリストで見えて、それを選んだ後日付を設定すると更新待ち状態になるような・・・
moritamasahiro様のやり方で出力するファイルを
HTMLファイルとして完全に成り立っている状態のものを
バックナンバー用のフォルダに出力して
Options +Indexes
と書いた.htaccessをおいてindex.htmlをおかなければ
ファイル名を省略してバックナンバー用のフォルダにアクセスするだけで
Apacheが作成したファイル一覧が表示され
そこからHTMLファイルを選択することで解決できると思います。
ん〜、ソフトウェアとして既に使えるツールがあればと思っているのですが、出ないようですね。
しかし、こういう方法でもできるという事で勉強させて頂きました。どうもありがとうございました。
これで一旦終了したいと思います。
なるほど。具体的にかいていただいてありがとうございます。
出来れば、ブラウザから更新ファイルを指定できるもの、指定日時をプルダウンで選択したりといったプログラムがあればと思っています。
初心者でもインストールすれば使えます、みたいのが一番理想です。