現在、自分のPCでPHPを使える環境を設定しているのですが、htaccessを使用する際にDirectoryIndexを使用するとエラーになってしまいます。

Apacheの何を変更すればよいのか分かりません。
後、エラーにはならないのですが、
RedirectMatch 301 ^([^.]*[^/])$ $0/
も効果がないのですが、わかる人がいたらお願いします。

回答の条件
  • 1人5回まで
  • 登録:2006/06/28 14:26:57
  • 終了:2006/06/29 14:33:36

ベストアンサー

id:ootatmt No.5

ootatmt回答回数1307ベストアンサー獲得回数652006/06/29 13:06:53

ポイント20pt

ファイルのリストが表示されるということは、Optionディレクティブで Indexes が有効になっていて、DirectoryIndex ディレクティブ が無効になっているということですね。


.htaccess の記述を間違えているか、置く場所を間違えている。

もしくは httpd.conf の 記述を間違えていることが考えられます。


一度、.htaccess に

Options -Indexes

の記述を加えて、Indexes を無効にして試してみてはどうでしょうか。

id:black_kenchan

ありがとうございます。

一応、出来ました。

2006/06/29 14:33:20

その他の回答(4件)

id:ootatmt No.1

ootatmt回答回数1307ベストアンサー獲得回数652006/06/28 14:40:37

ポイント20pt

.htaccess による、設定の上書きが禁止されているのでしょう。


インターネットに公開していないテスト環境ですよね?

それなら、httpd.conf に以下のように書いておくといいです。

AllowOverride All

(参考)

http://httpd.apache.org/docs/2.2/ja/mod/core.html#allowoverride

id:black_kenchan

httpd.confを調べたところAllowOverrideが複数書かれている箇所があり一つずつNoneからAllに変更して試したのですが駄目でした。

全て変えたほうが良いのでしょうか?

2006/06/28 14:55:57
id:ootatmt No.2

ootatmt回答回数1307ベストアンサー獲得回数652006/06/28 15:06:26

ポイント20pt

> 全て変えたほうが良いのでしょうか?


自分のコンテンツを置いているディレクトリの <Directory> セクション に書かれているものだけを変更してください。

バーチャルホストを使用していなければ DocumentRoot の指定の後にある、<Directory> セクションです。

DocumentRoot "/usr/local/apache2/htdocs"

 

<Directory "/usr/local/apache2/htdocs">

  Options Indexes FollowSymLinks

  AllowOverride All

  Order allow,deny

  Allow from all

</Directory>

id:black_kenchan

なんとかエラーは、おきなくなったのですがDirectoryIndex指定した事が機能しません。

どうしてでしょうか?

2006/06/28 15:33:45
id:ootatmt No.3

ootatmt回答回数1307ベストアンサー獲得回数652006/06/28 15:44:14

ポイント20pt

> なんとかエラーは、おきなくなったのですがDirectoryIndex指定した事が機能しません。


具体的に どういう動作を期待して、どのように記述していますか?


たとえば、

DirectoryIndex index.html index.php

と書いたときに、index.html がないのに index.php にアクセスされないとか...

DirectoryIndex は先に書かれたものから探していきますので、記述する順番が重要ですよ。

id:black_kenchan

DirectoryIndex test.php index.html index.php

上記のように記述しています。

test.phpはもちろんなのですが、一応index.phpもセットしています。

しかし、どちらも表示されません。

直接test.phpとindex.phpとURLに加えれば表示されるのですが、スラッシュだけだと表示されない状況です。

2006/06/28 15:55:40
id:ootatmt No.4

ootatmt回答回数1307ベストアンサー獲得回数652006/06/28 16:58:33

ポイント20pt

DirectoryIndex test.php index.html index.php

これを記述していて、スラッシュで終わるアドレスにアクセスしたときに test.php も index.php もあるのに、表示されず...なにが表示されますか?

ファイルのリストでしょうか?それともエラー?


このような状況になったときはアクセスログやエラーログを確認することが必要です。

test.php にアクセスしたときのアクセスログとエラーログを見せてもらえませんか?


回答回数があと一回なので、うまく解決できればいいのですが...

id:black_kenchan

ファイルのリストです。

2006/06/28 20:29:03
id:ootatmt No.5

ootatmt回答回数1307ベストアンサー獲得回数652006/06/29 13:06:53ここでベストアンサー

ポイント20pt

ファイルのリストが表示されるということは、Optionディレクティブで Indexes が有効になっていて、DirectoryIndex ディレクティブ が無効になっているということですね。


.htaccess の記述を間違えているか、置く場所を間違えている。

もしくは httpd.conf の 記述を間違えていることが考えられます。


一度、.htaccess に

Options -Indexes

の記述を加えて、Indexes を無効にして試してみてはどうでしょうか。

id:black_kenchan

ありがとうございます。

一応、出来ました。

2006/06/29 14:33:20

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません