Здесь есть несколько вопросов о возврате 404 вместо 403 в особых случаях (например,.ht * файлы или определенный каталог), но я не могу понять, как просто заменить все 403 ответа ( "Хорошо, это существует, но вам еще нужно найти способ" ) с 404s ( "Извините, никогда не слышал об этом" ). Я надеюсь, что существует простое решение, которое не требует обновления регулярных выражений или других битов .htaccess для соответствия изменениям сайта, просто простая директива: "всякий раз, когда вы решите вернуть 403, верните 404 вместо", который применяется на весь сайт, независимо от изменений конфигурации.
Затем, если верхний уровень .htaccess содержит "Параметры -Indexes", и любой данный каталог не содержит index.html(или equiv), URL-адрес голого каталога вернет 404, но если я когда-нибудь добавлю index.html к этот каталог, тот же самый URL-адрес голого каталога вернет index.html, без обновлений, необходимых для любого файла .htaccess.
Мне все равно, если в случае, когда я когда-либо запишу пароль в каталоге, неправильный пароль возвращает 404 (из-за 404 → 403 отображения). В этом случае я ничего не скрываю, возвращая 404, но это тоже не причиняет вреда. Если есть путь к UNDO, общее сопоставление 403- > 404 для особых случаев (а не DO для особых случаев), тем не менее, это может быть еще более полезным.
Конечно, если я что-то пропущу, пожалуйста, поставьте меня прямо.
EDIT: Drat. Я пытался написать здесь качественный вопрос, но мое описание поведения "Опции -Indexes" во втором абзаце оказывается неправильным. Без этой строки голый URL-адрес каталога показывает "index.html", если он существует в каталоге; в противном случае он отображает содержимое каталога. (Что пересылка /dir в/dir/index.html, если index.html существует, является установкой по умолчанию для веб-хоста по умолчанию, если только я не ошибаюсь.) Добавление строки "Параметры -Indexes" останавливает ее прошивку моей стирки публично ( возвращая 403, а не 404, но все же лучше, чем просмотр содержимого dir), но теперь голый URL-адрес каталога возвращает 403, даже если существует index.html.
Я хочу, чтобы в нем отсутствовал пустой URL-адрес "mysite.com/mydir" /mydir/index.html, если он существовал, и "404", если он этого не сделал, но, очевидно, ему больше, чем просто заменить 403s на 404s.