mod rewriteで403を404のレスポンスで返す
なんでそんなことするの?
ディレクトリの存在が確認できちゃうのでセキュリティ的によろしくないとのこと。
いざ実現
今まではPHPで無理やり404コードを返すようにしてました。こんな感じ。
- ErrorDocumentの設定
ErrorDocument 403 403.php
- 403.php
<?php header("HTTP/1.1 404 Not Found", false, 404); echo file_get_contents("404.html"); exit;
ふと思った
これ、リライトでいけるんじゃね?って思ってやってみたらすごい簡単にいけちゃいました。こんな感じ
※ちなみにhtaccessで設定してます。
ErrorDocument 403 403.html RewriteEngine on RewriteRule 403.html - [R=404,L]
これだけ。
403.htmlは実体なくても大丈夫。
次からはこれで対応だなあ。