質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Q&A

0回答

4693閲覧

IIS10 仮想ディレクトリで500エラーが発生する原因

退会済みユーザー

退会済みユーザー

総合スコア0

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

0グッド

0クリップ

投稿2020/03/16 06:23

編集2020/03/17 00:31

Windows Storage Server 2016にてIIS10のインストールを行い社内イントラネットの構築をしております。

Dドライブに社内システム用の仮想ディレクトリを作成し、共有設定とセキュリティ設定を行い。
http://localhost/仮想ディレクトリ名/index.html」に接続し表示を確認できました。

ここからが、質問の詳細になります。

先ほど記載したURLでは正常に表示されるのを確認しました。

  1. http://localhost/仮想ディレクトリ名/index.html

ただ、下記のURLで接続すると500エラーが発生し表示されません。
2.http://localhost/仮想ディレクトリ名/
※「index.html」を省略したURLです。

確認事項1 ファイルの確認(設置場所)

仮想ディレクトリ内には間違いなく「index.html」を配置(ここでエラーが出るなら1.のURLの時点で404が発生すると思います。)

既定のドキュメントの確認

調べているとIISには「既定のドキュメント」をIISマネージャーから設定できるようで確認したところ既に「index.html」が設定されていました。

検証

疑問に感じたので一旦仮想ディレクトリ内のファイルを全て削除し、その他設定されている「index.htm」や「Default.htm」を一つずつ検証してみましたが、同じく500エラーが発生。
※1つずつというのは
「仮想ディレクトリ」内に「index.htm」のみを配置して2.のURLで接続→500エラー
今度は「index.htm」を消して「仮想ディレクトリ」内に「Default.htm」のみを配置して2.のURLで接続→500エラー
デフォルト設定がいけないのか?と思い「index.php」を既定のドキュメントに追加し仮想ディレクトリ内に配置してみましたがこちらも500。

有効化設定の確認

既定のドキュメントの「有効」「無効」設定も確認してみたところ「有効」になっている。

結局のところ

どうやら、「既定のドキュメント」の設定自体が効いていない?ような感じがするのですが、詳細な原因が特定できず投稿しました。

終着点

URL:http://localhost/仮想ディレクトリ/
このURLでページが表示されるように500エラーを解消できればと思います。
※最終的には「http://localhost/仮想ディレクトリ/index.html」でアクセスがあった場合にリダイレクトして「index.html」を省略したいので。

追記1

「index.html」は動的ファイルでhtmlファイル内にPHPを埋め込んで使用しております。
確認の為、一度「index.html」を静的ファイルにして検証してみましたが結果は同じく500エラー。

気になる点として、「http://localhost/」で接続すると「wwwroot」内にある「iisstart.htm」が表示されます。
既定のドキュメントが効いていないのかな?とも思ってはいたのですが、こちらは正常に表示されております。仮想ディレクトリになると話が変わるのかな?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

over

2020/03/16 07:18

500エラーなので別の原因ではないでしょうか? 自環境で確認してみましたが再現せずです。「既定のドキュメント」に指定したコンテンツが見つからない場合、IISデフォルト設定では403エラーとなりました。 index.htmlは動的コンテンツですか?
退会済みユーザー

退会済みユーザー

2020/03/16 08:09

ログも確認しましたが、ステータスコードの絞り込みはできませんでした。 あくまでも「500 内部サーバエラーです。」の一文だけですね。 「index.html」ですが、動的ファイルです。 ハンドラーマッピングでFastCgiModuleを追加してHTMLファイルにPHPを埋め込んで動作するように設定しております。 ※今のところ動作テストの為だけに echo "test";しか記述していませんが…。
over

2020/03/16 08:20

静的なファイルでテストしてどちらが原因か探るべきかと。
退会済みユーザー

退会済みユーザー

2020/03/16 08:39

> 「index.html」ですが、動的ファイルです。 そういうことは質問の一行目に書こう。何なんだ全くという感じ。
退会済みユーザー

退会済みユーザー

2020/03/17 00:26

>SurferOnWwwさん ひとつの重要な情報でした、失礼しました。 index.htmlを静的ファイルとして作り直してみましたが現象は改善されませんでした。
over

2020/03/17 00:45

静的コンテンツで500エラーが発生するんですか? ちょっと考えられないです。 IISの設定が基本的に変なのかも?? 該当のハンドラーマッピングの「要求の制限」でフォルダを含めていますか?
退会済みユーザー

退会済みユーザー

2020/03/17 00:52

>静的コンテンツで500エラーが発生するんですか? ちょっと考えられないです。 ハッ!っとしました……。おっしゃる通り、静的ファイルで500はあり得ないですよね。 少し、IISの設定周り、調査してみます。
退会済みユーザー

退会済みユーザー

2020/03/17 01:03

> index.htmlを静的ファイルとして作り直してみましたが現象は改善されませんでした。 cgi で何かしようとしているという設定が影響しているのではないですか? 完全にデフォルトの状態から、Default Web Site に仮想ディレクトリを設定して、その中に index.html という静的ファイルを配置したのであれば問題ないはずですが。「静的なコンテンツ」は有効になっていて、ハンドラマッピングに StaticFile はありますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問