Я запускаю веб-сервер с apache2 на raspbian.
В / var / www / html / resources / есть некоторые файлы (например, с именами пользователей, паролями), но я не хочу, чтобы кто-нибудь знал, что они существуют, поэтому я хочу вернуть код состояния 404 (не найден) вместо 403 (запрещено).
(ошибка 403 скажет кому-либо, что он на правильном пути ...)
Да, я прочитал много вопросов, таких как this , и большинство ссылок под этим вопросом именно то, что мне нужно, но у меня это не сработало.
Должен ли я что-то изменить в файле (httpd.conf, ...)?
Вот все мои попытки вернуть 404 вместо 403.
Если я попытаюсь:
## return 404 for each .htaccess
RedirectMatch 404 ".*\/\..*"
в /var/www/html/.htaccess, я получаю 403 вместо 404, как я ожидал, если бы я посетил //localhost/.htaccess.
RewriteEngine On
RewriteRule ^.*$ /404 [L]
Результатов внутренней ошибки сервера (500)
Если бы я попробовал это:
# Will raise a 404 error, because the file <fake_file_for_apache_404.php> doesn't exist.
# We change 403 to 404 !
ErrorDocument 403 /fake_file_for_apache_404.php
# We need to rewrite 404 error, else we will have "fake_file_for_apache_404.php not found"
ErrorDocument 404 "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\"><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL <script type=\"text/javascript\">document.write(document.location.pathname);</script> was not found on this server.</p></body></html>"
Я получил 403 в сочетании с 404 (403 - файл, к которому я хотел получить доступ, был запрещен, 404 - файл, который я должен перенаправить, не найден.)
Так что я делаю не так?