• 締切済み

apacheの設定?

FreeBSD+Apache1.3.27+PHP3系でWebサーバを運用しております。 ドキュメントルートに、hogehoge.phpというファイルを置くと、 http://www.XX*.jp/hogehoge.php の動作は問題ないのですが、下記全てで同じページが表示されるようです。 http://www.XX*.jp/hogehoge http://www.XX*.jp/hogehoge/ http://www.XX*.jp/hogehoge/index.php 特に問題はないのですが、これはどのような理由でしょうか?関係しているモジュールやapacheの設定部分を知りたいと思います。 よろしくお願いいたします。

みんなの回答

回答No.7

mod_dirの機能だと思います。

参考URL:
http://httpd.apache.org/docs/1.3/mod/mod_dir.html
lowrider_2005
質問者

お礼

原因はコンテントネゴシエーションだと判明しました。

lowrider_2005
質問者

補足

ありがとうございます。 http://www.XX*.jp/hogehoge で http://www.XX*.jp/hogehoge/index.php が表示されるのはご指摘いただいた機能だと思うのですが、 http://www.XX*.jp/hogehoge/index.php で http://www.XX*.jp/hogehoge.php が表示されるのもmod_dir のしわざなのでしょうか。 ([documentroot]/hogehoge/index.php は存在しません) 参考URLを読んでみてもいまひとつ納得が行かないのですが・・・

回答No.6

http://www.XX*.jp/hogehoge/index.php のページを開くとどのURLのページが開くのでしょうか? http://www.XX*.jp/hogehoge.phpが開くということでしょうか?

lowrider_2005
質問者

補足

その通りです。お心当たりありますでしょうか?

回答No.5

hogehogeディレクトリが無くて同じファイルが表示されるとしたら あと考えられるのは404(File Not Found)のエラーで どこかのファイルが指定されているとかだと思いますが。 デフォルトでは以下のような感じになっていると思います。 httpd.confを確認してみてください。 ErrorDocument 404 /missing.html

lowrider_2005
質問者

補足

ご指摘いただいた設定はしておらず、存在しないURLを開くと404 NotFoundのデフォルト画面が表示されました。

回答No.4

基本的なことですがファイルの中でリダイレクトしているとかは 無いですよね。 http://www.XX*.jp/hogehoge.php http://www.XX*.jp/hogehoge/index.php 上記の2つは同じ表示がされるのですか?

lowrider_2005
質問者

補足

全く同じ内容です。hogehoge.phpを更新すると他にも反映されています。 ちなみにこの現象は「hogehoge.php」に限らず、「foo.php」でも「bar.php」でも全く同じ現象が起きます。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

余談ですが、PHP3系はメンテナンスがあまりされてない (サポート終了?)ようで、PHPはたまに 重大なバグがみつかりますので、せめて4系への 移項をなさったほうがよろしいかとおもいます。

lowrider_2005
質問者

お礼

ご指摘ありがとうございます。 phpの開発をしているのが他社のためこちらでバージョン指定できないのがつらいところです。

回答No.2

なんか”​”ってのが入ってしまいました。。。 これは無視してください。

回答No.1

http://www.XX*.jp/hogehoge.php →これはhogehoge.phpファイルへのアクセスです。 http://www.XX*.jp/hogehoge/index.php​ →これはhogehogeディレクトリ内のindex.phpへのアクセスです。 http://www.XX*.jp/hogehoge​ http://www.XX*.jp/hogehoge/ →これは両方ともhogehogeディレクトリへのアクセスとなります。 ファイル名が指定されていないので、サーバ側で設定されている 規定のファイル名(この場合はindex.php)へのアクセスになります。 規定のファイル名はapacheの設定ファイルhttpd.conf内の"DirectoryIndex"で設定されています。 ディレクトリへのアクセスの場合、最後のスラッシュはあっても無くても動作は同じですが、 スラッシュが無いのが正しいそうです。

lowrider_2005
質問者

補足

お答えいただきました内容は把握しているのですが、サーバ上にはhogehogeというディレクトリも無く、もちろんhogehoge/index.php も存在しません。 apache側でAliasの指定もしておりません。 ちなみにロードされているモジュールは以下の通りです。 mod_env.c mod_log_config.c mod_mime.c mod_negotiation.c mod_status.c mod_include.c mod_autoindex.c mod_dir.c mod_cgi.c mod_asis.c mod_imap.c mod_actions.c mod_userdir.c mod_alias.c mod_access.c mod_auth.c mod_so.c mod_setenvif.c mod_php3.c

関連するQ&A