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

Возврат кода 404 для несанкционированных попыток

У меня есть каталог администратора на моем веб-сервере (http://test.com/admin), и я не хочу, чтобы неавторизованные стороны получали доступ к этому каталогу / admin /, вместо этого я хочу возвращать код ошибки 404 для всех несанкционированных доступов.

Мой вопрос: есть ли способ вернуть код ошибки 404 для всех попыток доступа, кроме нескольких конкретных IP-адресов?

Мой веб-сервер - это Apache в Linux (plesk).

Для этого вы можете использовать mod_rewrite.

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !=10.0.0.1 [OR]
RewriteCond %{REMOTE_ADDR} !=10.0.0.1
RewriteRule ^admin($|/) - [L,R=404]

Обратите внимание, что R=404 flag требует как минимум Apache 2.1.1.

Ну и близко:

<Location /admin>
     Order deny,allow
     Allow from 10.0.0.1
     Allow from 192.168.1.1
     Deny from all
</Location>

Хотя на самом деле это возвращает 403 Forbidden, а не 404 Not Found, что, знаете ли, правильно.

Если вы помещаете это в .htaccess в каталоге администратора, вам не нужен контейнер Location. Пример написан для файла конфигурации сервера или виртуального хоста.

См. Также документацию по mod_access.

Как бы то ни было, по мере того, как время шло, я все больше прихожу к выводу, что администратор сайта находится на совершенно отдельном виртуальном хосте.

проверьте атрибут "разрешить от" в руководстве по настройке

Под litespeed следующая небольшая вариация с mod_rewrite работал у меня:

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^1.2.3.4 [OR]
RewriteCond %{REMOTE_ADDR} !^1.2.3.4
RewriteRule (.*) - [R=404,L]