PHPのないサーバーでの動的なページの作り方

このQ&Aのポイント
  • PHPがないサーバーでの動的なページ作成方法を教えてください。
  • 大学の研究室のホームページを作り替えており、PHPが使用できないために困っています。
  • 現在のホームページは1ページに対してHTMLファイルが1つずつあり、編集が面倒です。
回答を見る
  • ベストアンサー

PHPのないサーバーでの動的なページの作り方

こんにちわ。 現在、大学の研究室のホームページを作り替えています。 サーバーにはPHPが入っていないため、現在のホームページは1ページに対してhtmlファイルが1つずつある状況です。 私の作ったホームページ(example.jp/の中身)のディレクトリ構造は例えば以下のようになっています。 css/ js/ img/ home/ member/ news/ header.html footer.html menu.html そして、home/, member/, news/の中にそれぞれindex.htmlとmain.htmlが入っていて、example.jp/home/index.htmlにアクセスするとそのindex.htmlの中でhome/main.htmlとheader.html, footer.html, menu.htmlがJavascriptによって読み込まれるようになっています。 このため、メニューやヘッダーを変更したい場合は1つのファイルの編集だけですみます。 しかし、このままではindex.htmlを編集したい場合、全ファイルを変更しなければなりません。 できればindex.htmlも1つにしたいのですが良い方法はないでしょうか? 説明が分かりにくいかもしれませんが、よろしくお願いします。

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

javascript・・・そんなことしません。 【引用】____________ここから JavaScript、Cookie、セッション ID、フレーム、DHTML、Flash などの特殊な機能が使用されているためにサイトの一部がテキスト ブラウザで表示されない場合、検索エンジンのスパイダーがサイトをうまくクロールできない可能性があります。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[ウェブマスター向けガイドライン(品質に関するガイドライン) - ウェブマスター ツール ヘルプ( https://support.google.com/webmasters/answer/35769?hl=ja#2 )]より  特に大学のように半ば公的なサイトは第一義に、広汎なWebアクセス性の考慮( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/intro.html#h-2.4.2 )をします。  共通なコンテンツを含む場合は、基本的には古くて枯れた技法ですが、SSIを使用します。HTMLファイ内に、 <!-- include sitemap.txt --> と一行書いておけば、 <div class="nav">  <ul>   <li><a href="/">Top</a></li>   <li><a href="/member">Top</a></li>   <li><a href="/news">Top</a></li>  </ul> </div> とだけ書かれたsitemap.txtが埋め込まれて提供される。  他の部分も、すべてのリンクを/(ルート)から書く。 <img src="/images/photo/abc.jpg" width="420" height="360" alt=""> というふうに。これで、どの階層のファイルにコピーペーストしても機能する。 <!--#include virtual="/ssi/News.txt" --> <!--#include virtual="/ssi/Note.txt" --> <!--#include virtual="/ssi/Information.txt" --> <!--#include virtual="/ssi/Copyright.txt" --> <!--#include virtual="/ssi/Topic.txt" --> とかね。  また、index.htmlをCGIとして動作させても良いです。perlくらいは使えるでしょうから。  その場合は、PATH_INFOを使うと良いです。 http://hoge.jp/member/chem/abc.html  要求されたら、directory_indexで指定されているindex.html(ないしindex.cgi)が、/data/member/chem/abc.html を提供すればよいだけです。ユーザーにはhttp://hoge.jp/member/chem/abc.htmlとしか見えない。  この方法の長所は、プログラムを組み込めますから細工ができる。  SSIにしろCGIにしろ、index.htmlで動作するように設定しておくと完璧でしょう。 ★javascriptは使用してはなりません。最悪です。どうしてもなら、ナビゲーションに支障がない範囲で・・  

symmetry5
質問者

お礼

回答有難うございます。 WEBプログラムの勉強はしていましたが、提示していただいたガイドラインのような内容に関しては手付かずでした。 今後勉強したいと思います。 SSIやCGIも検討してみます。

その他の回答 (2)

回答No.3

>No.1お礼 >ラッパーファイル ラップというのは、「包み込む」という意味です。(サランラップ、クレラップなどの「ラップ」です) ラッパーというのは何かを包み込んでいる物です。 >example.jp/home/index.htmlにアクセスするとそのindex.htmlの中でhome/main.htmlとheader.html, footer.html, menu.htmlがJavascriptによって読み込まれるようになっています。 このように、他のファイルを読み込んでいるファイルを、ラッパーと呼びます。

回答No.1

index.htmlを違うファイル名にして、 そのファイルを読み込むラッパーファイルをindex.htmlという名前で作れば良いのではないでしょうか。

symmetry5
質問者

お礼

回答ありがとうございます。また返事が遅くなり申し訳ありません。 ラッパーファイルというのを調べましたが、私にはよく分かりませんでした。

関連するQ&A

  • PHPでhome以外のページのアクセス制限

    こんにちは、 PHP条件でhome以外のページをユーザーログインしていない際に制限したいのですが、 ---------------------- コード(index.php) require('header.php'); //....(中略) require('footer.php); -------------------- コード(header.php) (前略) <?php if(!isset($_SESSION['app']['username']) || $_SESSION['app']['username']==''){ if($section != 'home'){echo 'ログインしてください';}else{ ?> ------------------- コード(footer.php) <?php }} ?> (後略) ----------------------- のように設計すれば動作できるはずなのですが、「unexpected $end」エラーになってしまいます。直接index.phpを開くから'header.php'と'footer.php'がひとまとめにならないのでしょうか?footer.phpでちゃんと括弧を閉じたのに。 どうやって解決できるでしょうか 詳しい方がいらっしゃいましたら、教えていただきたいのです。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • html側のアンカーから値をphpに渡してincludeで表示したいの

    html側のアンカーから値をphpに渡してincludeで表示したいのですがうまくいきません。 どなたか教えてください。 index.html -------------------------------------------- <html> <body> <a href="main.php?mode=kaisya">会社概要</a> </body> </html> ------------------------------------------- main.php ------------------------------------------ <? $mode = $_GET('mode'); include "header.html"; include "$mode.html"; onclude "footer.html"; ?> ----------------------------------------- ↑でうまく行きません main.phpの$mode = $_GET('mode');の記述を 消すとヘッダーとフッターは表示されるんですが記入すると何にも表示されません --------------------------------------- index.html(main.phpへのリンクがあるファイル) main.php(ヘッダー、フッター、ボディーをincludeで表示) header.html(ヘッダー部分) footer.html(フッター部分) kaisya.html(body部分) ---------------------------------------- テストなので上記ファイルは全て同ディレクトリにいれてます 原因を調べていますが、分からず、、、、、 どなたか教えて下さい

    • ベストアンサー
    • PHP
  • php インクルードincludeした時のパス

    phpにてincludeした時のパスで躓いています。 現在のツリーは以下の様になっています。 index.html common  ├header.html  ├footer.html  ├right.html  ├img   ├navi-home.jpg   ├navi-1.jpg  ├css   ├base.css salon  ├hair    ├kari     ├index.html     ├access     ├ ├index.html     ├menu     ├ ├index.html この中の../hair/kari/index.htmlの中に ../common/header.html及びfooter.htmlを <?php include_once(dirname(__FILE__).'/../../../common/header.html'); ?> にてインルードしています。(書き方あってます?dirname(__FILE__).いります?) つぎに../hair/kari/access/index.htmlの中にもインクルードします。 <?php include_once(dirname(__FILE__).'/../../../../common/header.html'); ?> という風に一つ下の階層なので../を付け足しました。 このようにページ毎にheaderまでの相対パスが違うので、そのページ毎にパスを書き換えていかなければいけないものなのでしょうか? また../始まりではなく/始まりでないと表示されません。 /始まりは絶対パスでしたっけ? この書き方は間違っているのでしょうか? そして最後に、 ../common/header.htmlの中の画像ファイルやリンクは <img src="/common/img/navi-home.jpg"> の様に書かないと、インクルードしたファイル側で表示されません。 これも同じように/始まりのこの書き方でいいのでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • CSSのfloatとdivについて質問です。

    CSSのfloatとdivについて質問です。 下記のようにmainの中にlocal-navigationを配置したいのですがやり方が分からないのでご教授お願いします。 現在はlocal-navigationがfooterの上に表示されて自分の意図することが出来ていません。 sidebar-leftとsideba-rightはfooter部分まで伸びていて欲しいのです。 やりたいこと: ____________________________ |header-menu                      | |___________________________| |sidebar-left|     main     |sidebar-right | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |____________|       | |       |local-navigation    |       | |______|____________|_______| |footer                         | |___________________________| 現在の状況: ____________________________ |header-menu                      | |___________________________| |sidebar-left|     main     |sidebar-right | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |      |            |       | |       |            |       | |______|____________|_______| |local-navigation                    | |___________________________| |footer                         | |___________________________| 過去の質問: 「CSSでメイン部分が80%ぐらいに表示するには? http://okwave.jp/qa/q7728293.html 」 「CSSのbackground-imageについて http://okwave.jp/qa/q7728304.html 」

    • ベストアンサー
    • CSS
  • HPで各頁に共通したヘッダーhtml全部をつけたい

    ホームページで各ページに共通したヘッダーを JavaScriptのdocument.write()を利用してつけようとしています。 OSはwindows Xpで、制作ツールは、alphaEDITを使用しています。 1.「header.js」ファイルを用意 document.write("<header.html>header"); 2.「index.html」を用意 <html> <head></head> <body> <script language="JavaScript" src="header.js"></script>   中身 </body> </html> 3.スタイルシートsample3.cssを用意 4.header.html を用意 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><title>ヘッダー</title> <meta content="text/html; charset=shift_jis" http-equiv="Content-Type"> <link rel="stylesheet" type="text/css" href="sample3.css"> <script language="JavaScript" src="func.js"></script> </head> <body> (かなり長いので省略) <p>&nbsp;</p></body></html> これで「index.html」を実行しますと、   header    中身 と表示されます。 headerという文字ではなく、header.html 全部を表示し、かつスタイルシートも反映させたいのですが、どうすればいいですか? 教えて下さい。 参考にしたURL 各ページに共通したヘッダー(フッター)をつける http://tagland.net/technique/common_header.html

  • Dreamweaverのテンプレートから作成したページの一部を編集不可にしたい。

    検索して調べ回ったのですが、どうしてもわからないので、質問します。 Dreamweaverで、以下のように設定したテンプレートを作成しました。 mainのみ編集できる状態です。 テンプレート base.dwt ■header (編集X) ■main (編集○) ■footer(編集X) 上のテンプレートを使って、新規ページを作成したのですが、 テンプレートで可能領域にした所(main)を、そのページだけ一部編集不可にしたい部分があるのですが、どうすればよいでしょうか? 分かる方いましたら、教えてください><

  • 上下に分けたフレームページ。アップすると下のページだけ表示される・・・

    仕事でホームページを作っています。 更新がメインですが、初心者で担当は一人なので、質問させてください。 トップページは左右に分かれたフレームページです。 右側のメインのページを、上下に分けたいページがあります。 フレームはindex.htmという名前で保存し、上のページをheaderという フレーム名をつけてheader.htmとし、下のページをfooterという名前にし、 footer.htmとして保存しました。 つまりページは3ページあります。 index.htmをダブルクリックしてInternet Explorerで開いた場合と、Dreamweaverなどで 開いた場合は、きちんと上下に分れたページになるのですが、 トップページ左フレームのメニューボタンにindex.htmのリンクを入れて サイトを開くと、右側のメインページにはフレームなしの上、footer.htmの ページだけしか開かないのです。 保存方法はDreamweaverでフレームを新規保存し、その後で「すべて保存」 にしています。 わかりづらい質問で申し訳ありません。思い当たることがありましたら アドバイスお願いいたします。

  • サーバの自動転送設定がループしています

    現在のホームページアドレス:http://xxx-xxxxx.jp 新規のホームページアドレス:http://xxx-xxxxx.jp/wordpress 同一サーバーの同一ディレクトリにアップロードされています。 ダッシュボードの一般設定で ワードプレスのアドレス:http://xxx-xxxxx.jp/wordpress ブログのアドレス:http://xxx-xxxxx.jp wordpressフォルダにあるindex.phpのrequire('./wp-blog-header.php');を require('./wordpress/wp-blog-header.php');に変更しました。 現在のホームページのindex.htmlをディレクトリから削除。 http://xxx-xxxxx.jpにアクセスしても、モニター画面は真っ白のままです。 次に削除したindex.htmlのコピーファイルに、<head>と</head>に <meta http-equiv="refresh" content="0; URL=http://xxx-xxxxx.jp/wordpress"> 書き加えてアップロードしたものだから、無限ループになってしまいました。 ダッシュボードにもアクセスできません。 どなたか助けてください。お願いします。

  • FFFTPでの編集について

    超初心者です。 HPのトップページに少々変更を加えることになったのですが、まず、FFFTPからHP全体のフォルダをPCにダウンロードするまではできました。 その中のindex.html(トップページに該当する部分)を編集しようと思うのですが、どう探してもその中にfooterがありません。 FFFTP内のindex.htmlにもfooterの記載はないのですが、HPでソースを表示するとfooterがあります。 この場合、index.htmlだけ編集後それだけアップロードすれば問題なくfooterが表示されるようになりますか? また、FFFTPにあるファイルのサイズとダウンロード後のファイルのサイズが若干違うのですが(6498が6643になっています)これは問題ありませんか? 助けてください、お願いします。

    • ベストアンサー
    • HTML
  • CSSの読み込み開始までラグがあります

    header.php、main.php、footer.phpの3ファイルを作成して、 index.phpに include './header.php'; include './main.php'; include './footer.php';などとして読み込ませました。 cssファイルは、header.phpの<head>に <link rel="stylesheet" type="text/css" href="header.css"> <link rel="stylesheet" type="text/css" href="main.css"> <link rel="stylesheet" type="text/css" href="footer.css"> の形で記述されています。 javascriptがあり、これも同様に<head>に記述されています。 以上のファイルはすべて同じフォルダ内にあり、これをlocalhostで表示させました。 これをchromeで要素を検証してみたところ、 cssの読み込み開始までに2秒近いラグがあります。 このラグの考えられる原因は何があるでしょうか。 どなたか心当たりのある方、教えてください。よろしくお願いします。

    • ベストアンサー
    • CSS

専門家に質問してみよう