• ベストアンサー

サイトリニューアルを一瞬で行なう方法

WEBディレクターの皆さまのお知恵を拝借できればと思い書き込みました! 事情により、昼間の時間帯にサイトリニューアルを行なうことになりました。そのため、できるだけ早く、瞬時に行ないたいのですが、どのような方法がありますでしょうか? ディレクトリ構造などは変更しないので、すべてのファイルをあらかじめアップしといて、予定時刻になったらindex.htmlだけを新しいものにする、、、という方法がとれません。 よい方法がありましたら、宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

#01のものです。たびたびすみません。 >>一時的にどこかに転送してしまうもの そうですね。301リダイレクトというのは特定のフォルダに.htaccessなどで「このフォルダにアクセスが来たら、特定のページに移動させてください」という内容を記述することで、特定のフォルダへのアクセスを制限することを言います。参考URLを載せておくので、そちらでご確認をお願いします。 また#02の方がおっしゃっている方法でも確かに一瞬で移行ができます。ただ、この場合はpublic_htmlより上にあるルートにアクセスできなくてはならないので、気をつけてください。 具体的には、public_htmlがあるルートとおなじルートに別のpublic_html2みたいなフォルダをつくり、ここに新しいページのファイルを全てアップロードしておきます。そのあと、サーバー上でバッチファイルを実行するなり、CGIを使うなりして、public_htmlとpublic_html2という名前を入れ替えてやればいいです。 プログラムの内容については言語の問題もありますし、ここに書くことはしませんが、 (1)public_htmlおよびpublic_html2がファイルではなくフォルダであるという条件判定を行う。 (2)(1)の条件を満たした場合に、public_htmlとpublic_html2がどちらも存在するという条件判定を行う。 (3)(2)の条件を満たした場合にpublic_htmlをpublic_html3に、public_html2をpublic_htmlにリネームする。 こうすれば、誤ってもう一度このプログラムを実行しても、public_htmlとpublic_html3しかないので(2)の条件判定ではじかれて、2重で実行してしまう心配がありません。 プログラムを作る自信がなければ前者の方法をオススメしますが、この場合は一時的にファイル構造が変化してしまいますので、index.html以外のファイルにURLを入れて直接アクセスしてくる人が多くいるなら、後者の方が優れています。

参考URL:
http://www.web2-labo.com/301.html
u9girl
質問者

お礼

大変わかりやすい解説をありがとうございます!!! 310リダイレクトを使う方法は、シンプルで分かりやすいですね。 ディレクトリ名を書き換えるプログラムは、単純なもののようですので、ちょっとそちらも検討してみたいと思います! 有難うございました!!!

その他の回答 (2)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

現行サイトのファイルが格納されているディレクトリ(public_htmlとします)とは別のディレクトリに新サイトを構築しておきます。 そして、ディレクトリ名を入れ替えるプログラムを作っておいて、時間が来たらそのプログラムを実行すれば、瞬時に切り替わります。 ディレクトリのパーミッションには注意してください。

u9girl
質問者

お礼

ありがとうございます! 「ディレクトリ名を入れ替えるプログラム」を私自身が作ることができないのですが、どちらかで配布されているようなものなのでしょうか? (あるいは、すごく簡単に作れてしまうようなプログラムなのでしょうか?)

回答No.1

私はWEB制作を専門にやっているわけではないので恐縮ですが、私なら、index.htmlがあるルート(ここではpublic_htmlと呼びます)にフォルダ(ここではrootと呼びます)を作って、アップロードする予定のファイルを全てアップしておき、時間になったら、[public_html/index.html]を、[public_html/root/index.html]に強制的に飛ばすようなものに入れ替えます。 そうすればすぐにアクセス可能になるので、あとはゆっくりとファイルを入れ替えて、最後に[public_html/index.html]を入れ替えれば作業終了です。 もしサーバーの都合であらかじめアップするスペースがないのなら、別のサーバーを一時的に借りて、そこに飛ばすようにするなど、方法はあります。 瞬時に、となるとどちらにしても何らかの方法であらかじめアップしておく方法以外にはない気もしますが、参考になりましたでしょうか?

u9girl
質問者

お礼

ありがとうございます! やはり、あらかじめアップしておく必要があるのですね。 >[public_html/index.html]を、[public_html/root/index.html]に強制的に飛ばすようなものに入れ替えます。 この、一時的にどこかに転送してしまうようなもの・・・というのを、調べてみたところ「301リダイレクト」というのが検索で出てきました。こういった類のものでしょうか?