Назад | Перейти на главную страницу

Отключить списки каталогов с 404 вместо 403

Я отключил списки каталогов вот так ...

Options -Indexes

Когда я пытаюсь получить доступ к такому каталогу: -

www.example.com/secret/

Я получаю 403 Запрещено ответ.

Однако я хочу 404 Не Найдено ответ, поэтому хакеры не могут так легко угадать мою структуру каталогов. Как мне это сделать?

Включите mod_rewrite и AllowOverride в / secret. Затем создайте .htaccess:

RewriteEngine On
RewriteBase   /secret
RewriteRule   ^$ - [R=404,L]

Я поискал в Интернете ответ на аналогичную проблему. Хотя mod_rewrite - возможное решение, я считаю, что лучшее решение использует директиву RedirectMatch.

Видеть StackOverflow: проблема с перенаправлением 403 Forbidden на 404 Not Found

Создайте собственный сценарий 403, который вместо этого возвращает ошибку 404.

Например, в PHP:

<?php
header("HTTP/1.0 404 Not Found");
die("<h1>404 Not Found</h1>");
?>

Теперь настройте Apache для использования этого сценария для получения 403 результатов:

ErrorDocument 403 /403.php

Никаких проблем с перезаписью, это мгновенно работает для всего сервера.

Мое решение прекратить отображение содержимого каталога в виде списка и отображения ошибки 404 простое. Создайте файл .htaccess в корневом каталоге вашего проекта и укажите, какие каталоги должны быть защищены.

Структура справочников

- your_root_directory
  - .htaccess
  - 404.html
  - index.html 
  - app
    - other files I do not want to show
  - models
    - other files I do not want to show

.htaccess

RewriteEngine On
RewriteRule   ^app/ - [R=404,L]
RewriteRule   ^models/ - [R=404,L]

ErrorDocument 404 /your_root_directory/404.html

Вторая строка .htaccess запрещает доступ к элементам списка в каталоге приложения и всем его подкаталогам.

Третья строка .htaccess запрещает доступ к элементам списка в каталоге моделей и всем его подкаталогам.

Четвертая строка .htaccess устанавливает нашу собственную ошибку 404 (если вы не хотите отображать ошибку apache по умолчанию).

Не забудьте очистить кеш в вашем браузере, когда вы работаете с htaccess.

Используйте .htaccess, чтобы замаскировать ошибки. См. Это руководство:

http://www.tarahost.net/pages/web-design/29371.php