- ベストアンサー
macX、ローカル環境:ブラウザで「/」としただけでindex.htmlを表示させたい
宜しくお願いします。 当方、maxXのバージョン10.4を使用し、web制作をしています。 いままで、ページ間リンクのaタグ指定は <a href="info/index.html"> というように、index.htmlという所まですべてつけて記載していたのですが、一緒に作業している人に<a href="info/">というように、スラッシュで止めて記載するように指示され、さっそくすべてそうなるように置換しました。 そこで問題が発生。サーバにアップするとちゃんとリンクしているのですが、ローカル環境で確認しようとしたときに、ディレクトリの一覧が表示されてしまい、index.htmlを自動的に表示してれません。 firefox、safari、operaすべてでそうです。 (firefox/operaではブラウザのウィンドウ内にディレクトリ一覧が、safariではフォルダが開きます。) おそらく、macXの環境かなにかをいじることになるんだと色々検索したのですが、ローカルでサーバを立てるやりかた等がヒットしてしまい、思った結果を見つけることができません。サーバを立てたい訳ではなく、単純に「index.html」を省略したいのですが。 ローカルのApachとか?ダーウィンなどを設定するのでしょうか・・? ご存じの方、ご教授くださいませ。 よろしくおねがいします。 (すみません、書き込んでおきながら連休中不在にするので、お返事は火曜日以降になります。よろしくおねがいします。)
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
先の方の回答にあるように、URLのindex.htmlを省略しても、index.htmlが表示されるのは、多くのサーバーが設定で、「○○/」にアクセスあったら「○○/index.html」を表示するようになっているからです。 サーバーによっては、ファイル一覧だったり、アクセス禁止のエラーを表示したりする所もあります。 OSXなら標準でWebサーバー機能(Apache)装備されているので、システム環境設定からWeb共有を作動させるだけ、特に複雑な設定をする必要はありません。 OSXのApacheもファイル名省略して「/」とした場合、index.htmlがあれば表示するようになっています。 必要なファイル類は、「~/Sites/」以下にフォルダでも作って入れて、ブラウザで「http://127.0.0.1/~○○/」にアクセスするだけです。 ※)○○はユーザー(貴方の)アカウント名 尚、Web共有していても、ブラウザでfile://~で始まるURLにアクセスしていたら、ファイル一覧表示されます。
その他の回答 (4)
- milky_tomi
- ベストアンサー率34% (16/46)
index.htmlもしくはindex.htmなどを省略してもホームページを表示するようにするのは、みなさんが書いている通りapacheの設定で決まって来ます。 この辺は、今後もうまく行かないことがあったときの(サーバの設定がおかしいのにソースを疑われた場合に、オロオロしないよにする)為にも、アドバイスにもある、httpd.confで何を定義しているのかは知っておいた方がよいでしょう。 しかし、はっきりさせておいた方が良いと思うのが、 index.htmlを省略してもホームページを表示するようにするのがクライアントの仕様なのかどうかという点です。(クライアントも承知なら問題ありません) 間違っても制作者の都合やこだわりをクライアントに押し付けるようなことだけはしないように気をつけて下さい。
お礼
<index.htmlを省略してもホームページを表示するようにするのがクライアントの仕様なのかどうかという点です。 ありがとうございます。 以前は大規模サイトのお手伝い、という作業が多かったので、プロデューサーやディレクターと呼ばれる方々のいうとおりにしていれば良かったのですが、小規模のサイト案件が増えてくることで、こういう仕様についても利点/難点を理解し、自分の言葉で説明できるように勉強しておきたいと思います。 的確なアドバイス、本当に感謝いたします。
- harawo
- ベストアンサー率58% (3742/6450)
さきに、対処法を書きます。そのあとで、どうしてそういう対処をするのか、理由を書きます。 編集しているデータの保存場所を、ホームフォルダ>サイト(Sites)フォルダに変更します。 システム環境設定>共有で、「Web 共有」をオンにします。 Safariなどのウェブブラウザを起動します。 URL「http://127.0.0.1/~(ユーザ名)/」(あるいは「http://localhost/~(ユーザ名)/」にアクセスします。 URLで、ディレクトリにアクセスすると、index.htmlを開くというのは、Apacheの設定に過ぎません。ウェブの標準規格を制定しているW3Cが、そういう定義をしているのではありません。Apacheが機能していない環境で、Apacheの設定と同じふるまいをしないと、主張するのは、ペプシコーラをコカコーラと呼ぶとか、クレラップをサランラップを呼ぶとかして、いっていることが通じないと腹を立てるようなものです。 もし、あなたの会社にウェブ制作を依頼しているクライアントが、Windows Serverをウェブサーバとしていたら、index.htmlのファイル名を、すべて書き換えなければならなくなるでしょう。(しないですむかもしれませんけど) さいわいMac OS Xは、Apacheを標準搭載していますから、Apacheを起動することで、サーバにアップロードする前に、リンク確認することが可能になります。Apacheの起動方法は、前述したとおり、システム環境設定>共有で、Web共有をオンにします。
お礼
丁寧なご説明、ありがとうございます。 W3Cについても勉強しないといけないなあ、とつくづく感じました。 データの保存場所など、ファイルの管理体制なども見直す必要がありますね。
- Hoyat
- ベストアンサー率52% (4897/9300)
#1です。 省略しすぎたので補足 >index.htmlを省略するというのはサーバーの設定そのものを変えてやらなければ本来だめなものなのです。 Webサーバーでも本来はindex.htmlを省略するというのはサーバーの設定そのものを変えてやる必要があるのです。ですが大抵のWebサーバーでは初期段階で、「Apache の設定」(「ブラウザがディレクトリにアクセスしたらindex.html又はindex.htmを最初に探しなさい」と設定されている)がなされているので、ユーザーが無意識に利用しているだけで本来的なものではありません。
お礼
<Webサーバーでも本来はindex.htmlを省略するというのはサーバーの設定そのものを変えてやる必要があるのです。 なるほど、この機会にApacheなどの詳細をおおまかにも知っておこうと思います。丁寧なご回答、ありがとうございました。
- Hoyat
- ベストアンサー率52% (4897/9300)
ローカルでサーバー立てるやり方で良いんです。 index.htmlを省略するというのはサーバーの設定そのものを変えてやらなければ本来だめなものなのです。 ローカル環境で確認ということはブラウザでプレビュー確認ということでしょ?つまりローカル上でも、サーバーにアクセスするのと同じことなのです。 Webサーバーと同じ動作をさせたいなら、「Apache の設定」をWebサーバーと同一にしてやる(httpd.conf ファイルを書き換える)必要があります。
お礼
回答ありがとうございます。 どうやらローカルでの作業環境を見直す必要がありそうなんだなぁと気がつきました……。ほぼ独学でやってきたので、こういった場合の対処に弱い私です…お恥ずかしいです。
お礼
今まで.htaccessを設定するようなことはあったのですが、サーバ関係はシステム担当者に任せっきりで、Apacheに触れる事がなかったのです。 近頃はphpでのページ作成の案件もありますので、この機会にローカルでのテスト環境を見直したいと思います。 Dreamweaverのサイト定義で、「テストサーバー」→「URL接頭辞」とあるのは、そういう意味だったのか!!と、遅まきながら知りました。。。お恥ずかしい。ご回答ありがとうございました。