- ベストアンサー
特定のページを表示させないようにするには
あるページだけ、時間がきたら表示させないようにするには、その時間になったらffftpでサーバ側のファイルを消すしか方法はないのでしょうか? エックスサーバを使用しています。よろしくお願いします
- みんなの回答 (8)
- 専門家の回答
みんなの回答
- JavaJavax2
- ベストアンサー率22% (68/305)
私気が短いんで速く返信くださいね。 じゃないと分からなくてももう返信しませんよ? ・・・・最ももう十分な程、情報は出しましたが。 ちなみにphpでやるならこんな簡単なプログラムを組むだけです。 この例ではファイルはphpと同じフォルダにおくようになってます。 以下phpファイルの内容。index.php等として保存。 <?php //アクセスできる時間帯の設定 ここから▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ // $time_min = 9 * 60 * 60; の時は9時から // $time_max = 10 * 60 * 60;の時は10時まで // ※ 0時からの秒数で指定が可能。 //例:9 * 60 * 60→9時間×60分×60秒 =32400秒(0時を0とする) $time_min = 8 * 60 * 60; $time_max = 10 * 60 * 60; //アクセスできる時間帯の設定 ここまで▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲ //表示するファイルの設定 ここから▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ //$allow →許可する時間帯のファイル //$deny →拒否する時間帯のファイル $allow = "./allow.html"; $deny = "./deny.html"; //表示するファイルの設定 ここまで▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲ $hour = date("H") * 60*60 ; $mini = date("i") * 60; $sec = date("s"); $total = $hour + $mini + $sec; $buff = ""; if( ($total > $time_min) && ($total < $time_max) ){ $read_file = $allow; }else{ $read_file = $deny; } if (! ($fp = fopen ($read_file , "r" ))) { die("ファイルが開けません。"); } while ($line = fgets($fp)) { $buff .= $line; } fclose($fp); print $buff; //print $buff . "<br> $time_min $time_max $total"; ?>
- JavaJavax2
- ベストアンサー率22% (68/305)
おはようございます。 長々と色々書きましたが、このサーバの場合 htaccessで記述するのが最もスマートでしょうね。
- JavaJavax2
- ベストアンサー率22% (68/305)
連投すみません。 sshは使えないようですね。 http://www.xserver.ne.jp/faq_tool_server.php によるとcronはサーバーパネルから設定するようです。 絶対パスが初心者にはわからないかもしれないですね。 知識があれば色々調べる方法はありますけど・・。 このFAQも不親切といっちゃ不親切ですね。 この場合、 /usr/bin/mv ファイル2 ファイル1 をコマンドの部分に入力することになります。 もちろんファイル1、ファイル2は絶対パスです。 ファイル1、ファイル2の絶対パスは あなたの環境で調べて見ないことには私にもわかりません。 例:home/サーバーID/独自ドメイン名/public_html/... じゃ俺にもわからんぞ。何を考えてるんだか。 時間の入力はさほど難しいと思わないので割愛します。
- JavaJavax2
- ベストアンサー率22% (68/305)
#3についてですが、記述にあやまりがありました。 例の記述の仕方は、root(管理者)でないとかけないやり方でした。 大体設定のイメージは掴んでいただけたとは思いますが・・
- JavaJavax2
- ベストアンサー率22% (68/305)
cronの設定はsshかtelnetが使えればそこから設定する事になるかな。 サーバによって違うのでなんともいえませんが、 sshの場合接続して、ユーザ、パスワードを入力しシェルに crontab -e コマンドを入力し 分 時 日 月 曜日 コマンド のフォーマットで記述します。 viエディタの知識も必要になるかもしれませんね。CGIやPHPで WEBからの設定画面が用意されていれば簡単なんですけどね。
- JavaJavax2
- ベストアンサー率22% (68/305)
私はネットで勉強しましたよ。検索すれば情報は沢山出てきます。 まあ、今回の場合はcronでも出来ますが、 PHPやCGIでやるほうがお勧めかもしれませんね。 cronはmvコマンドの起動する時間を指定すればokです。 一般的なcron記述の例: (ただしサーバによっては、他のアプリケーションからこのファイルを書き込む場合がありますので、その場合はサーバの指示に従ってください。まあ大体はコマンドと時間は最低限入力させられることになりますね。ユーザ名は決まってるので入力しなくてもいい場合が考えられます。) 分 時 日 月 曜日 ユーザ コマンド 01 * * * * user /usr/bin/mv ファイル1 ファイル2 05 * * * * user /usr/bin/mv ファイル2 ファイル1 これは、毎時、01分にファイル1をファイル2の場所へ移動し、 毎時5分にファイル2をファイル1の場所へ戻す設定 まあきちんとテストしてみないとちゃんと 動くかどうかは不明ですが。 これを応用すると。 00 0 * * * user /usr/bin/mv ファイル1 ファイル2 00 7 * * * user /usr/bin/mv ファイル2 ファイル1 0時にファイルをファイル2に移動し、7時に元に戻す。 結果→24時から7時まではアクセスしても404 (File not found)エラーを返す。なんて事ができます。 まあ何か別のメッセージを表示させておいた方が無難でしょうね。 さらに応用すれば出来るでしょう。 注意:ユーザ名はUnix上のユーザ名です。きちんと調べて実行してください。また、コマンドのパス(存在する場所)はシステムによって違う場合もあります。一般的には上記で大丈夫ですが・・。 cronについて以下が参考になります。 http://www.express.nec.co.jp/linux/distributions/knowledge/system/crond.html
- JavaJavax2
- ベストアンサー率22% (68/305)
追加 cronが使えればcronでも出来ます。 ファイルをPHPにすればそれでも出来ます。
- JavaJavax2
- ベストアンサー率22% (68/305)
サーバーによって制限がある場合もありますが htaccessで出来ます。 エックスサーバで利用できるかどうかは知りません。
補足
cronというのが使えるみたいなんですが、ずばり言って、使い方がわかりません。コマンドを入力するみたいなのですが、こういうのはどこで勉強すればよいのでしょうか?