プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
.htaccessの「deny from ~」でアクセスを拒否ると、独自の403エラーページの代わりにApacheのTest Pageが表示されてしまうのを対処する
結論から書くと

/etc/httpd/conf.d/welcome.conf

の中から

<LocationMatch "^/+$">
    Options -Indexes
    ErrorDocument 403 /error/noindex.html
</LocationMatch>

の部分を全部コメントアウトして、httpdを再起動すればOKです。

それでは詳細を書いていきます。

事件は、自分で作った403エラーページの動作確認をしているときに起きました。

独自の403エラーページを配置して、.htaccessファイルに

ErrorDocument 403 /err403.html

とか書いたのですよ。
403エラーが出た場合は「err403.html」を表示するように設定しました。

そして、動作確認をしたのですね。

まずは「http://example.com/test/」のように指定して、
ディレクトリにアクセスしたときに403 Forbiddenとなることを確認しました。

うん、OK(*´ェ`*)ノ

次に、.htaccessに

deny from 210.xxx.xxx.xxx

と自分のIPアドレスを記述して(自分のアクセスを拒否して)、
403 Forbiddenになることを確認し……あれ(--?

こんな画面が表示されちゃいましたφ(--;)

20140420-1.png
※クリックで拡大します。

あれれ?
確かアクセス拒否った場合のエラーコードは403ですよね?
何で用意した403エラーページが表示されないの(--?

というのが、今回のきっかけです。

取りあえず「どーすれば直るのよ?」とGoogle先生に訊いてみました。

ふむふむ(--)

/etc/httpd/conf.d/welcome.conf

を開いて

<LocationMatch "^/+$">
    Options -Indexes
    ErrorDocument 403 /error/noindex.html
</LocationMatch>

の部分を全部コメントアウトして

#<LocationMatch "^/+$">
#    Options -Indexes
#    ErrorDocument 403 /error/noindex.html
#</LocationMatch>

にして保存、あとはhttpdを再起動すればOKでした。

ちなみにhttpdの再起動は、私の環境では

apachectl restart

もしくは

/etc/init.d/httpd restart

です。

これでばっちり表示されるでしょ!ヾ(´∀`)ノと思ったのですが、
実はもう一山ありましてね。

次の記事に続きます。

あっ、ApacheのTest Pageが表示されないようにすること自体は今回の対処でOKです。
というわけで、一先ず完了\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● 環境設定関連  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事