Apacheのディレクトリインデックスの設定方法

このQ&Aのポイント
  • WordPressでHPを作成しようと思いたち、MySQLやPHP、Apacheをインストール・設定していたのですが、ディレクトリインデックスの設定について困っています。
  • Admin Web様のサイトの情報に従い、hello.htmlを指定の場所に配置し、httpd.confのディレクトリインデックスを書き換えても、index.htmlしか参照されず、他のHTMLファイルが表示されません。
  • この問題の解決方法や、index.html以外のHTMLファイルを表示させる方法について教えてください。
回答を見る
  • ベストアンサー

Apacheのディレクトリインデックスの設定方法

WordPressでHPを作成しようと思いたち、MySQLやPHP、Apacheをインストール・設定していたのですが http://www.adminweb.jp/apache/docroot/index2.html (Admin Web様のサイト) 上記HPに記載されているとおりに、ディレクトリインデックスについて学んでいたのですが hello.htmlをC:\Apache24\htdocs上に置き、httpd.confのディレクトリインデックスの部分を何度書き換えてもindex.htmlしか参照されず、困っています 試しに他にもhtmlを作ってみたのですが、結局意味はなく・・・ これができないために、WordPressのインストールも先に進めることができず、どうしていいかわかりません どうすればindex.html以外を表示できるようになるでしょうか?

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

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

う~ん。。そうではなく、 アドレス + "/" この場合が、index.html なだけですよ アドレス + "/hello.html" なら表示できるはずです。 なので、Directory には、パスは書かないでください。 例として、 C:\Apache24\htdocs\hello.html とかくのは、NGなので C:/Apache24/htdocs/hello.html ですが、この場合 C:\Apache24\htdocs\hello.htmlという”フォルダを参照します” index.htmlを用意して、そこにメニューなどを貼り 希望のhtmlが表示できればOKだと思いますよ。

jabberwocky3376
質問者

お礼

ご回答有難うございます 失礼ながら、自分は右も左も分からない超初心者なので、あまり良く理解できておりません(泣) 参照したAdminWeb様のサイトを見て、その通りにやっただけなのですが、そのサイトでは DirectoryIndexの右には"/hello.html"とは書いてあらず、"hello.html"と書いてあるだけなのですが、そこの違いは何なのでしょうか? そして、書き方に語弊があったのかもしれませんが、Directoryにはパスは書いておりません AdminWeb様のサイトにおいてあるhello.htmlをダウンロードして、ドキュメントルートに置いたということを伝えたかったため、そのような書き方にしました 基本的に書いてあることをそのままやっただけなのですが、それではダメだということでしょうか? しかし、おっしゃられたとおりにhttpd.confのディレクトリインデックスの右側"hello.html"を"/hello.html"に書き換えたのですが、何も変わりませんでした… index.~でないと認識しないということでしょうか?しかし参照先ではhello.htmlでも表示されているようですし… すいません、理解力が足りずよくわかりません。自分で言っていることも間違いが多いかもしれません… もしよろしければもう少し詳しく教えて頂いてもよろしいでしょうか?

その他の回答 (4)

  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.5

>基本的に書いてあることをそのままやっただけなのですが、それではダメだということでしょうか? リンク先のページを見ましたが、間違ったことは書いてないので、書いてあるとおりにやれば書いてある結果が得られるはずです。 なので、あなたは書いてあることをそのままやっていません。 どこが違っているのか、「自分は書いてあるとおりに出来ていない」という意識を持って再度チェックしてください。「自分は間違っていないはずだ」という意識だと間違いは見つかりません。 このページに至るまでのどこかですでに間違っているという可能性も十分ありますね。

jabberwocky3376
質問者

お礼

ご回答ありがとうございます 何度もチェックし試行錯誤し間違いはないかと探しまわったのですが、結局ダメでした。確かにこのページ以前ですでに何かしら間違っており、そもそもその通りにできようがない、と言うのは仰るとおりな気がします とりあえず全部消してもう一度最初からやり直そうと思います。まさか導入するだけでここまで難儀になるとは思いませんでした…もっと勉強します

回答No.4

次のステップ?としてですが、 C:\Apache24\htdocs\index.html を置いてみると、表示できますか? #Apacheそのものが動いているかを、確認したいためです。

jabberwocky3376
質問者

お礼

すいません、試行錯誤してapacheを再起動したりhttpdを書き換えたりしていたら、いろいろなエラーが出て対処できなくなりました こんな夜遅くまで付き合って頂いて言いづらいのですが、もう一からやり直したほうが早いと思うので、やり直してみます。本当に申し訳ありません…

回答No.3

確認なのですが、 DocumentRootはどこになってますか? これが、表示されるサーバー側のパスになります。

jabberwocky3376
質問者

お礼

検索したところ、 c:/Apache24/htdocs と出ました 先ほどまでC:\Apache24\htdocsと表記していたのは間違いでしたが、場所は同じはずです

回答No.2

追加、リクエスト時に、 index+何かが、本来理想で、それ以外を使うべきではないのですが、 "index.html"とは限らない、  "index.shtml"かもしれないし、  "index.php"かもしれない。  "index.cgi"なこともあるでしょう。 書き換えると、トラブルが増えます。 http://httpd.apache.org/docs/2.2/ja/mod/mod_dir.html#directoryindex DirectoryIndex index.html ここに追加。 を、confなり、.htaccess でオーバーライドすれば一応出来ますので、 どうしてもダメなら、こちらも、お試しを。

関連するQ&A

  • Apacheの仮想ディレクトリ設定について

    質問があります。 windows2000serverにApacheを導入したのですが、実現したいことがあります。動作する範囲は社内のあるフロアのみなので、外から見えるということは考えていません。 今、C:\Oracle\ora90\Apache\Apache\htdocs配下にaaaというディレクトリがあります。この配下には、index.phpというファイルが入っています。このindex.phpは表示する際にユーザID、パスワードを入力するウィンドウが立ちあがります。 URLにhttp://サーバ名/aaa/index.phpとすると動作するのですが、これを http://サーバ名/aaa/とだけ入力して動作するようにしたいのです。 httpd.confファイルを編集すれば出来るということが解ったので、DocumentRootをC:\Oracle\ora90\Apache\Apache\htdocs\aaaとしてみました。DirectoryIndexにindex.phpを加えました。 そうするとhttp://サーバ名/と入力するだけでindex.phpが動作します。よく考えればそうですね。 次に、aliasの設定に掛かりました。 Alias /aaa/ "C:\Oracle\ora90\Apache\Apache\htdocs\aaa/" という記述を加えました。 これでもうまくいくません。 Apacheの再起動は記述を変更するたびに行っています。 同じような事をしたことのあるかた、記述例などを教えて頂けるとありがたです。 よろしくお願いします。

  • Redhat9.0でホームディレクトリのindex.htmlが見れません。

    Redhat9.0で一般ユーザーのホームディレクトリに転送したindex.htmlが見れません。 /var/www/html/ にindex.htmlを送ったところ見れているので、httpd.confの設定は間違っていないかと思われるのですが、原因がわかりません。apacheは2です。よろしくお願いいたします。

  • Apache2で仮想ディレクトリ(alias)の設定について

    お世話になります。 下記の環境で社内WEBサーバを構築しています。 OS:CentOS4.4 httpd:Apache2.0.61 httpd.confの内容 ServerRoot "/usr/local/apache" User apache Group apache DocumentRoot "/usr/local/apache/htdocs" <Directory "/usr/local/apache/htdocs"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> Alias /icons/ "/usr/local/apache/icons/" <Directory "/usr/local/apache/icons"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory> Alias /info/ "/home/info/" <Directory "/home/info"> AllowOverride None Order allow,deny Allow from all </Directory> 上記のようなhttpd.confを書いて、 "/home/info/"以下のファイルに"www.example.co.jp/info/"で アクセスしたいと考えています。 しかしブラウザから確認をすると、 You don't have permission to access /info/index.htm on this server. Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request. のエラーが表示されます。(当然、希望するページは表示されません) 実際のディレクトリのパーミッションも確認しましたが、設定されているように思えます。(私の知識不足、誤認識であれば指摘ください。) drwxr-xr-x 6 root root /home drwxrw-r-x 2 info apache /home/info "/home/info"には766・755・744のどれをあてても同じ結果です。 また、"/home/info"以下のファイル"index.htm"は存在を確認し、 パーミッションも下記のように確認しています。 -rwxr-xr-x 1 root root index.htm ファイルの所有者・グループは"root"になっていますが、これはテスト的に作成したもので、実際の運用は"info"ユーザで作成されます。 httpd.confやパーミッションの設定で間違っているところがあれば ご指摘をおねがいいたします。 また情報が不足していましたら、補足に載せますのでご指摘をお願いします。

  • APACHEで参照するhttpd.confの場所を変更する方法がわかり

    APACHEで参照するhttpd.confの場所を変更する方法がわかりません。 とある理由で以下のような変更をしたいのですが良くわからず行き詰ってしまいました。 /etc/http/httpd.conf⇒/usr/local/apache/httpd.conf としたいのですが、どこでhttpd.confのディレクトリを設定しているかわからず困っています。 参照するhttpd.confの場所を変更する方法を教えてください。

  • apache2.2 の設定に関して

    過去ににはlinux で apache1.3x の頃だと思いますが、apache の設定を行ったことがあります。 今回さくらインターネットと契約して、各種サーバの設定をコンソール上から行うことになりました。OS が FreeBSD (バージョンは未確認、確認方法が不明な為)ですが、apche の基本的設定は同じだと理解しました。 apache のバージョンが、2.2 になっていますが、基本的設定は httpd.conf で良いことは調べて確認しました。 現状(契約した後)では、取得した独自ドメインで確認ページを見れることは確認しています。 http://www.hogehoge.jp/ 独自ドメインでのアクセスは OK でした。 httpd.conf を確認して、DocumentRoot "/home/htdocs" も確認しました。 次に個々のユーザが、public_html でホームページを公開出来るように、httpd.conf に以下の情報を追加しました。 <Directory "/home/*/public_html"> Options FollowSymLinks ExecCGI Includes AllowOverride All Order allow,deny Allow from all </Directory> と記載して、apache を再起動させ、 http://www.hogehoge.jp/~hoge/index.html にアクセスすると。 Not Found The requested URL /~hoge/index.html was not found on this server. と出ます。 httpd.conf には他には何も追記していません。他にも何処か設定する項目が有るのでしょうか、アドバイスを頂ければ幸いです。 ユーザ hoge は、ディレクトリ public_html を作成して、index.html は置いてあります。 # hogehoge.jp は架空のドメインで、取得したドメインではありません。

  • Apacheのエラーログ【Directory index forbidden by rule】

    質問いたします。 Apacheのエラーログで Directory index forbidden by rule: /test/img/, referer: http://test.jp/ と頻繁に出ます。 もともと/test/img/ディレクトリにはimageファイル以外は入れていないので、そもそもindexを捜しに来る時点でhttpd.confの設定が間違っていると思います。 DocumentRootはhome/testです。 VirtualHostで設定しており、 <VirtualHost *:80> ServerName test.jp ServerAlias www.test.jp DocumentRoot /test/www </VirtualHost> と設定しています。 httpd.confのどのへんに問題があるのか教えてください。

  • apache2でユーザーディレクトリが

    apache2でユーザーディレクトリを使いたいんですが ただのapacheではデフォルトでユーザーディレクトリがつかえるんですが 403でパーミッションを直して使えて apache2でいろいろ apache2.confなどにuserdir.cなどのモジュールを読み込ませたり sites-avalias/defaultに /home/*/public_htmlなど試してみたいんですが ダメみたいです ちょっと省略していますが ちなみにバージョンはApache/2.2.3です エラーは http://xxxxx/~ユーザー名 にアクセスすると 403ではなく404エラー フォルダが無いということは sites-avalias/defaultかapache2.confの設定がおかしいんでしょうか? ちゃんと /home/xxxx/public_htmlも作ってありますし パーミッションもあっています しかし <Directory /home/xxx/public_html>などの設定をしたいんですが sites-avalis/defaultに書くのか それともapache2.confに書くのかまぎらわしくて defaultのほうには<Directory /var/www>など書いてあって apache2.confにはmoduleなどいろいろ書いてあります apache2がhttpd.confではなくてまぎらわしくてよくわかりません それとバージョンなど古かったりなど違ったりして できないみたいです Apache/2.2.3でユーザーディレクトリを使っているかた 詳しく教えて下さいお願いします

  • Apache2.2 Aliasについて

    http://www.adminweb.jp/apache/docroot/index3.html 上のサイトを参考に、ドキュメントルート以外の場所へアクセスできるようにしたいんですが 参考サイト通りにやっても、うまく動きません。 httpd.confは <IfModule alias_module> Alias /labo/ "C:/Apache_Server/data/" <Directory "C:/Apache_Server/data"> Allow from all </Directory> ScriptAlias /cgi-bin/ "C:/Apache_Server/Apahce2.2/cgi-bin/" </IfModule> このように書いています。 (ServerRoot は "C:/Apache_Server/Apahce2.2" DocumentRoot は "C:/Apache_Server/Apahce2.2/htdocs"です) C:\Apache_Server\data に index.htmlを置き http://localhost/labo/index.html へアクセスしても Not Found The requested URL /labo/index.html was not found on this server. と表示されます。 環境はApache2.2、windows7です。 どこか間違っているところがあるのでしょうか? よろしくお願いいたします。

  • apacheのバーチャルホストの設定について

    XAMPPを一通りインストールして、apacheでバーチャルホストの設定を行っております。 環境:Windows2003server ApacheFriends XAMPP (Basispaket) version 1.7.1 + Apache 2.2.11 固定のグローバルIPアドレスは1つ持っており、仮に111.222.333.444としておきます。 バーチャルホストのドメイン名は2つ設定したいと思っており、 aaa.hogehoge.net bbb.hogehoge.net 他業者のDNSにて111.222.333.444をAレコードの値として、それぞれ割り当てしました。 ちなみに、hogehoge.netのAレコードは別のサーバーを当てています。 そこで、携帯から直接 http://aaa.hogehoge.netとhttp://bbb.hogehoge.net をアクセスしましたら、自社サーバーのC:/xampp/htdocs/にあるindex.htmが表示されました。 一応、名前解決は成功したとして、、、 念のため、Windowsのhostsに 111.222.333.444  aaa.hogehoge.net  bbb.hogehoge.net を追加しました。 apacheのメイン設定-httpd.conf ------------------------------ ServerRoot "C:/xampp/apache" Listen 80 ServerAdmin admin@localhost ServerName localhost:80 DocumentRoot "C:/xampp/htdocs/" ↓バーチャルホストのファイルをインクルード Include conf/extra/httpd-vhosts.conf ----以下、httpd-vhosts.confの中身 ホスト名を2つ設定 NameVirtualHost 111.222.333.444:80 <VirtualHost 111.222.333.444:80> ServerAdmin admin@aaa.hogehoge.net DocumentRoot C:/xampp/htdocs/aaa.hogehoge.net ServerName aaa.hogehoge.net ServerAlias www.aaa.hogehoge.net <Directory "C:/xampp/htdocs/aaa.hogehoge.net"> Options FollowSymLinks Includes ExecCGI AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost 111.222.333.444:80> ServerAdmin admin@bbb.hogehoge.net DocumentRoot C:/xampp/htdocs/bbb.hogehoge.net ServerName bbb.hogehoge.net ServerAlias www.bbb.hogehoge.net <Directory "C:/xampp/htdocs/bbb.hogehoge.net"> Options FollowSymLinks Includes ExecCGI AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost> 設定後、apacheを再起動して、再度携帯電話からhttp://aaa.hogehoge.netとhttp://bbb.hogehoge.netにアクセスしたのですが、C:/xampp/htdocs/にあるindex.htmが表示されてしまい、C:/xampp/htdocs/aaa.hogehoge.net/index.htm、C:/xampp/htdocs/aaa.hogehoge.net/index.htmが表示されません。それぞれのパーミッション自体は766になっているので、こちらは違うと思うのですが、バーチャルホストの設定が悪いのか何処が悪いのか、何か設定が悪いのか全くわからなくなりました。参考書のマニュアルを見ると、「バーチャルホストを設定すると、メインホストの設定が無効になる」と書いてあったので、それでもメインのホストが表示されてしまうということは、バーチャルホストの設定に問題があるのだと自分なりに察知しております。 どなたか、考えられる原因や心当たりある事がございましたら、ご教授をお願いします。

  • apache の設定

    ホームページを置いているディレクトリで、index.html がない場合に ディレクトリの中身が見えてしまうので、httpd.conf を修正しました。  <Directory /home/hogehoge> Options All </Directory> から  <Directory /home/hogehoge> Options Includes FollowSymLinks ExecCGI </Directory> で、Indexes をとったつもりで、apache をリスタート させたのですが、それでもディレクトリの中身が見えてしまいます。 何か、勘違いしているのでしょうか??? また他に行うことがあるのでしょうか。 教えて頂けますでしょうか。 よろしくお願い致します。

専門家に質問してみよう