• ベストアンサー

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とか?ダーウィンなどを設定するのでしょうか・・? ご存じの方、ご教授くださいませ。 よろしくおねがいします。 (すみません、書き込んでおきながら連休中不在にするので、お返事は火曜日以降になります。よろしくおねがいします。)

  • Mac
  • 回答数5
  • ありがとう数7

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

  • ベストアンサー
  • dezimac
  • ベストアンサー率56% (2365/4208)
回答No.3

先の方の回答にあるように、URLのindex.htmlを省略しても、index.htmlが表示されるのは、多くのサーバーが設定で、「○○/」にアクセスあったら「○○/index.html」を表示するようになっているからです。 サーバーによっては、ファイル一覧だったり、アクセス禁止のエラーを表示したりする所もあります。 OSXなら標準でWebサーバー機能(Apache)装備されているので、システム環境設定からWeb共有を作動させるだけ、特に複雑な設定をする必要はありません。 OSXのApacheもファイル名省略して「/」とした場合、index.htmlがあれば表示するようになっています。 必要なファイル類は、「~/Sites/」以下にフォルダでも作って入れて、ブラウザで「http://127.0.0.1/~○○/」にアクセスするだけです。 ※)○○はユーザー(貴方の)アカウント名 尚、Web共有していても、ブラウザでfile://~で始まるURLにアクセスしていたら、ファイル一覧表示されます。

参考URL:
http://www.futomi.com/lecture/macosx/index.html
pop8864
質問者

お礼

今まで.htaccessを設定するようなことはあったのですが、サーバ関係はシステム担当者に任せっきりで、Apacheに触れる事がなかったのです。 近頃はphpでのページ作成の案件もありますので、この機会にローカルでのテスト環境を見直したいと思います。 Dreamweaverのサイト定義で、「テストサーバー」→「URL接頭辞」とあるのは、そういう意味だったのか!!と、遅まきながら知りました。。。お恥ずかしい。ご回答ありがとうございました。

その他の回答 (4)

回答No.5

index.htmlもしくはindex.htmなどを省略してもホームページを表示するようにするのは、みなさんが書いている通りapacheの設定で決まって来ます。 この辺は、今後もうまく行かないことがあったときの(サーバの設定がおかしいのにソースを疑われた場合に、オロオロしないよにする)為にも、アドバイスにもある、httpd.confで何を定義しているのかは知っておいた方がよいでしょう。 しかし、はっきりさせておいた方が良いと思うのが、 index.htmlを省略してもホームページを表示するようにするのがクライアントの仕様なのかどうかという点です。(クライアントも承知なら問題ありません) 間違っても制作者の都合やこだわりをクライアントに押し付けるようなことだけはしないように気をつけて下さい。

参考URL:
http://www.tohoho-web.com/wwwxx076.htm
pop8864
質問者

お礼

<index.htmlを省略してもホームページを表示するようにするのがクライアントの仕様なのかどうかという点です。 ありがとうございます。 以前は大規模サイトのお手伝い、という作業が多かったので、プロデューサーやディレクターと呼ばれる方々のいうとおりにしていれば良かったのですが、小規模のサイト案件が増えてくることで、こういう仕様についても利点/難点を理解し、自分の言葉で説明できるように勉強しておきたいと思います。 的確なアドバイス、本当に感謝いたします。

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.4

さきに、対処法を書きます。そのあとで、どうしてそういう対処をするのか、理由を書きます。 編集しているデータの保存場所を、ホームフォルダ>サイト(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共有をオンにします。

pop8864
質問者

お礼

丁寧なご説明、ありがとうございます。 W3Cについても勉強しないといけないなあ、とつくづく感じました。 データの保存場所など、ファイルの管理体制なども見直す必要がありますね。

  • Hoyat
  • ベストアンサー率52% (4897/9300)
回答No.2

#1です。 省略しすぎたので補足 >index.htmlを省略するというのはサーバーの設定そのものを変えてやらなければ本来だめなものなのです。 Webサーバーでも本来はindex.htmlを省略するというのはサーバーの設定そのものを変えてやる必要があるのです。ですが大抵のWebサーバーでは初期段階で、「Apache の設定」(「ブラウザがディレクトリにアクセスしたらindex.html又はindex.htmを最初に探しなさい」と設定されている)がなされているので、ユーザーが無意識に利用しているだけで本来的なものではありません。

pop8864
質問者

お礼

<Webサーバーでも本来はindex.htmlを省略するというのはサーバーの設定そのものを変えてやる必要があるのです。 なるほど、この機会にApacheなどの詳細をおおまかにも知っておこうと思います。丁寧なご回答、ありがとうございました。

  • Hoyat
  • ベストアンサー率52% (4897/9300)
回答No.1

ローカルでサーバー立てるやり方で良いんです。 index.htmlを省略するというのはサーバーの設定そのものを変えてやらなければ本来だめなものなのです。 ローカル環境で確認ということはブラウザでプレビュー確認ということでしょ?つまりローカル上でも、サーバーにアクセスするのと同じことなのです。 Webサーバーと同じ動作をさせたいなら、「Apache の設定」をWebサーバーと同一にしてやる(httpd.conf ファイルを書き換える)必要があります。

pop8864
質問者

お礼

回答ありがとうございます。 どうやらローカルでの作業環境を見直す必要がありそうなんだなぁと気がつきました……。ほぼ独学でやってきたので、こういった場合の対処に弱い私です…お恥ずかしいです。

関連するQ&A

  • safariでのbase hrefの仕様

    safariでのbase hrefの仕様 動的URLを静的なURLに見せるためにmod_rewriteを使用しています。 ディレクトリで分けているためbase hrefを指定していますが、 safariのみ表示やリンクがおかしくなります。 <base href="http://xxx.xx/">として <a href="/index.html">リンク</a>をクリックすると http://index.thml/となってしまいます。 最初の/(スラッシュ)を無くし<a href="index.html">リンク</a>にするとsafariでは正しく動作しますが、 IEでhttp://xxx.xx/に移動したい場合、http://xxx.xx/aaa/から<a href="index.html">リンク</a>をクリックすると http://xxx.xx/aaa/index.htmlになります。 もともとは一つのPHPファイルをmod_rewriteでディレクトリによって分けているので../などを条件によって付け足すと相当な時間がかかります。 おそらく同じ理由でCSSや画像も読み込まれていません。 safariではbase hrefは反映されないのでしょうか? 何か対処方法があればおしえてください。 よろしくお願いいたします。

  • index.htmlの省略

    私のサイトのトップページへのリンクはすべてcom/で区切っていますが、 その下のディレクトリにもcom/A/index.htmlがありまして その場合トップページからだとcom/A/なんですが、そのA/index.htmlのサイトのコンテンツからは相対パスなのですべてindex.htmlになってます。 Googleなどから見ると、最初にインデックスするのはトップページなのでそこから見に来た場合、A/にくると思います。そしてインデックスすると思いますが、 それ以降その中のコンテンツを見てもすべて相対パスでindex.htmlです。そうすると違いが出てきて、A/のサイトはトップからのリンク一つで、index.htmlへのリンクはその下のコンテンツから30のリンクをもらっていることになります。 これはAのディレクトリの中のindex.htmlへのリンクはすべて絶対パスでやったほうがいいのですか。 それともトップページからのリンクを相対パスでindex.htmlありにしたほうがいいのでしょうか。 Googleでサイトオープンして3ヶ月くらいたつのにトップとそのディレクトリの中のindexしか登録されていない状況です。関係あったりしますか。サイトマップ送ったりもしましたが。 Yahooではほとんどインデックスされその後カテゴリにも登録されました。

    • ベストアンサー
    • HTML
  • location.hrefはブラウザごとに異なる?

    phpなどで動的ページでhtmlを出力しています。 一覧で複数ジャンルを表示させているのですが、 静的ページなら<a name="xx">スクロール先</a>を使って 該当ジャンルまでスクロールさせて表示できますが、 動的ページのため、javascriptを用いてIEでは動作確認できましたが FireFoxやSafariでは、location.href="#jmp";では<a name="jmp"></a>に 移動しませんでした。 すべてのブラウザで同じ動作をさせる方法はありますか? FireFox, Safari個別の方法でも構いません。

  • displayがブラウザによって正しく表示されない

    phpおよびhtmlに関する質問です。 今、tableを表示・非表示を表示ボタンと非表示ボタンを押すことで自由に開閉しようとしています。 document.getElementById('xxx').style.displayを使って書いているのですが、 ChomeやSafariでは正しくボタンを押すと開閉されるのですが、それ以外のブラウザIE、Firefox、Operaでは真っ白な画面が表示されるだけで上手く表示されません。 実際には以下の様に書いています。 <a href="javascript:document.getElementById('xxxx').style.display = ''"> <img src="aaaa.jpg" alt="表示する"/> </a> <a href="javascript:document.getElementById('xxxx').style.display = 'none'"> <img src="bbbb.jpg" alt="表示しない"/> </a> 表示されるブラウザと表示されないブラウザの違いの一つとしてアドレスバー にて、表示される方は同じアドレスが出ている状態でtableが表示されます。 表示されない方は、アドレスバーに「javascript:document.getElementById('xxxx').style.display = ''」 とそのままaタグの内容が表示されてしまいます。 また、この記述がされるページは読み込み時にjavascriptですべてのtableをnoneで表示しない設定 にしており、これについてはすべてのブラウザがいずれも表示しない状態でページ表示が完了します。 IEやFirefoxでもボタンの開閉が上手くできるようにするにはどのようにしたらよろしいでしょうか? 現在の各ブラウザのバージョンは以下のとおりです。 Chome:26.0 Safari:5.1.7 IE:8.0 Firefox:19.0.2 Opera:12.15

    • ベストアンサー
    • PHP
  • ローカル上におけるindexファイルのない時

    こんばんは。お世話になっております。 PCの調子が悪く、OSの再セットアップをし、apache_2.0.59、php-5.2.2をインストールしたのですが、これまでローカル上においてディレクトリ内にindexファイルがない場合は、そのディレクトリ内に存在する各ファイル、ディレクトリの一覧表示があり、それをクリックすることで目的のファイル(またはディレクトリ)に移動出来たのですが、再セットアップをし、新たにPHPなどをインストールしたら、それらの表示が出なくなってしましまいた。 apacheやPHPはこれまで利用していたバージョンをそのまま引き継いでいるのですが、以上のような状況はどのようなことが考えられるのでしょうか?お忙しい中申し訳ありませんが、ご意見いただければ幸いです。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • CSSを利用して、特定のリンクや画像を非表示にしようと思っています。

    CSSを利用して、特定のリンクや画像を非表示にしようと思っています。 img[src="画像URL"] {display:none !important;} a[href^="URL"]{display:none !important;} これで、Opera、Firefox、Safariではできたのですが、 IE6ではできません。 IE6で有効な方法を教えてください。

  • フォルダの中のindex.html

    <a href="○○○/">とやるとローカルではリンクされません。 どうしたらローカルでも動きますか? よろしくお願いします。

  • ローカルのPHPファイルを表示できない

    LinuxでPHPの開発の勉強をしようとLAMPのインストールをしています。 EeePC 1000HにUbuntu 10.10を入れています。 昨日、Apache2.2 PHP5 MySQLを、apt-getで入れました。 info.phpというファイルを作り、 <?php phpinfo(); ?> と書いて保存しました。 Apache2.2では、localhostのデフォルトのDocumentRootが  /etc/apache2/sites-available/default に指定されていて、   /var/www  となっています。ここにinfo.phpを保存してfirefoxで  http://localhost/info.php を開くと、無事にinfoページがでました。ここまでは問題ありません。 次に、UserDirをa2enmodコマンドを使って設定し、 ユーザー(hoge)の homeディレクトリ以下にpublic_htmlをつくりました。この下に、 通常のindex.htmlファイルを保存して、 ~hoge/index.html が開くことも 確認しました。 その後で、 /home/hoge/public_html/ 以下にinfo.phpを保存し、 firefoxで開こうとすると、「アプリケーションの選択もしくは保存」という いつものダイアログが出てきてしまいます。 このように、/var/www に置いた場合と、public_html以下に置いた場合で firefoxの挙動が変わります。 apache2の /var/www へのアクセス指定するファイルが、 apache2/sites-available/defaultで、以下のようになっています。 <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> この中身の部分を、 apache2/mods-available/userdir.conf にコピペし、以下のようにしました。 <Directory /home/*/public_html>  Options Indexes FollowSymLinks MultiViews  AllowOverride None  Order allow,deny  allow from all   </Directory> apache2もリスタートしましたが、結果は変わりませんでした。 ここまでで行き詰まりました。 どなたか解決法を教えていただけませんか。 よろしくお願いします。

    • 締切済み
    • PHP
  • indexのページの途中にリンク

    通常サイト内でトップのindexへリンクを張る場合 <a href="/" >index</a> という感じになるかと思うんですが、続けてページの中の途中へリンクを張る場合 <a href="/#name>name</a> これで行けるかと思ったらうまく行きませんでした。 正式にはどのように書けばよいのでしょうか?

  • ブラウザによる表示の違い

    <a href="リンク先" target=" top">の記述の場合、IEおよびChromeでは別の新しいタブにリンク先が表示されますが、Firefoxでは同じタブに表示されてしまいます。ブラウザによって表示の仕方が違うのでしょうか?