2013年12月11日水曜日

Apacheで 403の代わりに 404を返す方法

Apache(+ PHP)で、存在するがアクセスを拒否する場合に、存在することを示唆してしまう 403 Forbidden の代わりに、404 Not Found を返すための設定例。

httpd.conf
ErrorDocument 403 /404.php
ErrorDocument
404 /404.php
403と404で違うものを返したら意味が無いので、同じものを返すようにする。

404.phpの例
<?php header('HTTP/1.1 404 Not Found') ?>
<!DOCTYPE html>
<html>
<head><title>404 Not Found</title></head>
<body>
<h1>Not Found</h1>
The requested URL was not found on this server.
</body>
</html>
ポイントは、header()でHTTPステータスを指定していること。
IEだとこの表示内容は使われずに、IE独自のエラー画面が表示される。

きちんとやるなら、トップページへのリンクや検索窓付きのきちんとしたページを作れば良い。

(参考)403エラーの代わりに404エラーを返す | 時の回廊 .

0 件のコメント:

ブログ アーカイブ

カテゴリー