2020.3.27

「icons」フォルダに置いた画像ファイルにアクセスしようとしたら404エラーが発生したので対応

ローカル環境の動作確認にApacheを利用していたのですが、なぜか、iconsフォルダに置いた画像ファイルを参照しようとしたら、404エラー「Object not found!」が発生してファイルを参照できないことがありました。

原因

エラーが発生した原因を調べると、Apacheの場合、デフォルトで「icons」というエイリアスが用意されていて、そのエイリアスの参照先にアクセスしてしまっていたことが問題でした。

URLに「/icons/」というパスが含まれていると、意図せず、デフォルトで用意されている「icons」エイリアスの参照先にアクセスして、当然、そちらにファイルが存在しないので、404エラーが発生していたようです。

なぜ、そんなエイリアスが設定されているのかというと、Apacheにデフォルトで用意されているコンテンツがそのエイリアスを利用しているためで、必要ない場合やセキュリティを意識して、iconsフォルダへのエイリアスを削除しておくのが通常のようです。

Apacheのバージョンによって、エイリアスの設定箇所は異なるようですが、Xamppで導入した「2.4」系の場合、「C:\xampp\apache\conf\extra」配下にある「httpd-autoindex.conf」というファイルにエイリアスの記述があります(23行目)。

Alias /icons/ "C:/xampp/apache/icons/"

なお、Apacheのバージョンが「2.2」の場合は、「httpd.conf」に上記の設定が記されているようです。

対応

対応としては、アクセスしようとしたフォルダ(icons)の名称を変える方法もありますが、デフォルトで用意されている「icons」エイリアスが必要ないのであれば、上記のエイリアスの設定をコメントアウトすればOKです。

#Alias /icons/ "C:/xampp/apache/icons/"

あとはApacheを再起動して、もう一度、ファイルにアクセスすれば、iconsエイリアスに影響されずに目的のファイルを参照することができます。

Apache】関連記事