• 締切済み

Apacheで、indexの拡張子別に優先順位を付けたい。

あるディレクトリにindex.htmlとindex.phpのファイルがあるとします。 そこに、仮にhttp://www.○○.com/ というURLでアクセスできるとします。 ここに、ブラウザで「http://www.○○.com/」にアクセスすると、現在はindex.phpが表示されるようになっています。これを、どんな場合でもindex.htmlを表示させるようにしたいのですが、Apacheの設定でどこを変更すればよいのか分かりません。 関係ありそうな設定は、DirectoryIndexなのですが、現在は DirectoryIndex index.html index.html.var index.php という設定になっています。一応、設定通りに動いていることになりますが、これを拡張子別に、明示的に優先順位を付けたいと考えています。 index.htmlにアクセスできるようにするために、何か設定方法などありますでしょうか? Apacheバージョンは、2.0.54となります。 よろしくお願いいたします。

みんなの回答

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.2

>全部のディレクトリに.htaccessを置くのも管理上面倒 locationディレクティブやdirectoryディレクティブを使えば.htaccessの置いてある階層から下に有る物はそれで制御できるよ。 それと、httpd.confを変更したらapacheは再起動しないと反応しないので注意。 自分でいじれる訳じゃなくてそういうのは .htaccess でしかできない、というなら .htaccess で変更できるのが何であるのかを確認した方が良いよ。 つまりこれの設定の事 (上位階層の .htaccess または httpd.conf) http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride これで許可されていない場合は DirectoryIndex で何を書いても有効にならないから。。。

ikazuti
質問者

お礼

質問する前から、当然apacheの再起動は何度もやってますが、やはり変化はないですね。上位階層にも設定関係のファイルはなかったですし。 何故かどうやっても出来ないので、.htaccessを必要な箇所に置くようにしました。 ご回答、有り難うございました。

  • okg00
  • ベストアンサー率39% (1322/3338)
回答No.1

http://httpd.apache.org/docs/2.0/ja/mod/mod_dir.html rootやドキュメントルートのDirectoryIndexをご質問の形に書き換えればOKのはずです。書き換えた後、Apacheを再起動してください。 DirectoryIndex index.html index.html.var index.php の状態で、左が優先されます。 >どんな場合でもindex.htmlを表示させる なら DirectoryIndex index.html で良いのでは?でも、URLをindex.phpまで入力されると表示されますので、要らないファイルは削除してください。

ikazuti
質問者

お礼

うーん、色々とやってみてはいるのですが、やはり変わりません。 仕方ないので、今のところ必要な箇所に.htaccessを置くようにしています。 ご回答、有り難うございました。

ikazuti
質問者

補足

> DirectoryIndex index.html index.html.var index.php > の状態で、左が優先されます。 そうなのですか? 現在、そのように書いてるはずなのですが、上手く表示されません。 何か、他に原因があるんでしょうか……? ちょっと調べてみます。 > DirectoryIndex index.html > で良いのでは? 説明が不足していて済みません。inde,phpのみがあるディレクトリもあるので、外せなかったりします(汗 .htaccessでディレクトリ毎に設定を変える方法も考えましたが、全部のディレクトリに.htaccessを置くのも管理上面倒だったりするので……

関連するQ&A