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

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

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

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

Q&A

1回答

5371閲覧

404エラーページが表示されない

taketake77

総合スコア13

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

0グッド

0クリップ

投稿2019/03/03 05:29

前提・実現したいこと

特定のURLへアクセスするとディレクトリにファイルがなく、ディレクトリが見えてしまうため
404エラーページを表示したいと考えています。

例)https://example.com/test/service
へアクセスするとディレクトリがみえてしまうため、
404エラーページを表示したい。

発生している問題・エラーメッセージ

404.htmlというファイルを作成し
http.confへ以下を記載しapacheのサービスを再起動しましたが
サイトへアクセスるとページ遷移せずディレクトリが見えてしまいます。
ErrorDocument 404 /404.html

.htaccessファイルにも記載してみましたが同様の事象となりました。

試したこと

1.DocumentRoot "/var/www/wordpress"
→上記、DocumentRootへ404.htmlファイルを配置。

2.以下へErrorDocumentの設定を記載
<Directory "/var/www/wordpress">
ErrorDocument 404 /404.html
</Directory>

3.Aliasのエラーの設定をコメントアウト
Alias /error/ "/var/www/error/"

4.動作確認で対象のパス(https://example.com/test/service)へアクセスすると、
フォルダが見えてしまいます。

accessログを見るとhttpレスポンスは200を返していることが原因のように思うのですが
他必要な設定はありますでしょうか。

補足情報(FW/ツールのバージョンなど)

RHEL6
Apache/2.2.15 (Unix)

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

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

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

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

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

guest

回答1

0

特定のURLへアクセスするとディレクトリにファイルがなく、ディレクトリが見えてしまうため

/etc/httpd/conf/httpd.confOptionsIndexes が設定されているためです。
Indexes 設定を削除すると 403 を返すようになります。

投稿2019/03/03 07:19

TaichiYanagiya

総合スコア12146

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

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

taketake77

2019/03/04 00:25

回答ありがとうございます。 実現したいことは、「https://example.com/test/service」へアクセスすると 404.htmlを表示させたいになります。 回答いただいた設定をすると、Forbiddenにはなるのですが404.htmlが表示されませんでした。 404.htmlを表示させる方法を、ご教授いただけますでしょうか。
TaichiYanagiya

2019/03/04 06:36

応答コード 403 はそのまま、404.html を表示させたいのであれば、「ErrorDocument 403 /404.html」と設定するといいのではないでしょうか。
taketake77

2019/03/07 10:53

回答ありがとうございます。 確かに相対パスになっておりました。 しかし「https://example.com/test/service」でアクセスした際に、 404エラーで返せるようにしたいのですがレスポンスが200で返ってくる原因を、 ご教授いただけますでしょうか。 apacheなどの設定を見ても、そのような項目が見当たらないので原因が不明な状況です。
TaichiYanagiya

2019/03/07 14:18

403 が返るようにしたのではないのですか?
taketake77

2019/03/11 00:42

403に返るようにしたのですが、ご教授いただいた通りHTMLの作りにより画像が正常に表示されない状況のため、別の方法として200が返ってきているのを404へできないか検討していたところです。
taketake77

2019/04/23 06:49

色々調査した結果、403を返すことになりました。 しかし本番の環境を確認したところ、Indexesが削除されているにも関わらず ディレクトリが見えている状況でした。 バーチャルホストを作成してコンテンツを公開しているのですが、httpd-vhosts.conf内もIndexesはありませんでした。 welcome.confというファイルがある場合にIndexesが効かないとありましたが、そのようなファイルもない状況です。 他、考えられる要因はありますでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問