- ベストアンサー
サイト表示されずに404エラーページが表示される原因とは?
- ブラウザで確認できるのにアクセスしても表示されない
- プロバイダの有料サービスでサイトをつくり、指定されたcgi置き場にファイルを設置したことはあるのですが、今回はじめてサーバーを借りてサイトをつくっています。
- http://○○/index.html をブラウザにて確認できる(表示される)のに、http://○○ でトップページにアクセスすると「404」のエラーページになってしまいます。原因がわかりません。ルートディレクトリにインデックスhtmlページはあります。なのに、なぜ表示されないのでしょうか。ひとつ下の階層フォルダにcgiのファイルが入っていますが、なにか配置の仕方をまちがっているのでしょうか?パーミッションはいちおう借りたところのマニュアル通りにしていますが、こちらをまちがっている可能性はありますか?よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
.htaccess により、ファイル名を指定しなかったときに、自動的に補完するファイル名を指定できます。 .htaccessに、次のような行は無いでしょうか。 >DirectoryIndex index.cgi index.html index.shtml この指定があると、「http://○○/」というアクセスがあったときに、 (1)http://○○/index.cgi (2)http://○○/index.html (3)http://○○/index.shtml というファイルに順番にアクセスし、存在した物が表示されます。 もしここで、 >DirectoryIndex index.cgi とだけしか書かれていなかったなら、 (1)http://○○/index.cgi だけしか試さず、index.html があっても表示されません。 もう一つ、Rewritecond と Rewriterule によるURL書き換えが行われている、と言う場合も考えられます。 例えば、 >RewriteEngine On >RewriteCond %{REQUEST_URI} /$ >RewriteRule ^(.*)$ $1index.cgi [R,L] 等と書かれていたら、「/ で終わるURLは、/index.cgiに書き換える」という意味になりますので、index.htmlに行かずにindex.cgiが表示されてしまったりします。 その他にも、.htaccess による仕掛けがいくつか考えられますが…。 .htaccessに書いてあることがよく分からなければ、.htaccess を削除してしまうのも一つの手段です。 .htaccess が存在しなければ、そのWebサーバの既定値で動きますので、http://○○/ は http://○○/index.html が普通に表示されるのではないかと思いますけど…。
お礼
自己解決しました。 回答、ありがとうございました。 なんとキャッシュを削除したら、ふつうに表示されました……。 ブラウザは通常、firefoxを使っているのですが、昨日IEでアクセスしてみたとろ、 きちんと表示されましたので、あらと思いまして。 階層とかファイルの中身とかに問題はなかったようです。 ともかくありがとうございました。
補足
くわしい回答をありがとうございます! 質問内容に誤りがありました。すみません、勘違いしていました。 以前cgiを使った経験がありまして、今回は最初cgiのファイルをアップしましたがすぐに削除して、phpのファイルをアップロードしました。 で、.htaccessファイルはありません。 今のところ下記のようになっているのですが、変ですか。 +imag +mail index.html style.css welcome.html mailというフォルダの中に、メールフォームのphpファイルが入っています。 ここにもindex.htmlがあり(フォルダごとに必要だとどこかで読んだので)、 そのファイル内にphpを参照(実行?)する記述が入っているのだと思うのですが……。 phpファイル内にRewritecond と Rewriterule はありませんでした。 ちなみにmailフォルダ内のindex.htmlをブラウザで確認してそのメールフォームを使用すると、 正常に送信完了画面になり、メールソフトに返信メールも送られてきます。 サーバー側ではデフォルトで index.html index.htm index.shtml index.shtm index.php index.cgi の順でアクセスされるそうです。 なにゆえホームページのURLにアクセスするとindex.cgiとURLが変わって、しかも404になるのかがわからないのです。