У меня есть URL http://example.com/web/en/press-release/
. Как мне заблокировать всем пользователям доступ и просмотр этой страницы и http://localhost:10004/web/en/press-release/*
использование .htaccess
?
Я хочу, чтобы они были доступны только с определенных IP-адресов.
Мне это понравилось, но не работает.
# Press Release Blocked Now
RewriteCond %{HTTP_REFERER} web/en/press-release/ [NC,OR]
RewriteRule .* - [F]
решение1
Если выдолжениспользовать.htaccess
файлыВы должны знать их ограничения:
.htaccess
файлы (или «распределенные файлы конфигурации») предоставляют способ вносить изменения в конфигурацию на основе каталога. Файл, содержащий одну или несколько директив конфигурации, помещается в определенный каталог документов, и директивы применяются к этому каталогу и всем его подкаталогам.
Это означает, что вы контролируете настройкиконтейнеры файловой системыскорее, чемконтейнеры веб-пространства, и конфигурация по умолчанию применяется ко всем подкаталогам. Поэтому для достижения вашей цели вы должны поместить файл .htaccess
в путь файловой системы, соответствующий URL-пути /web/en/press-release/
.
Если и /web/en/press-release/
ссылаются на один и тот же каталог и оба обслуживаются напрямую из файловой системы с помощью Apache (т.е. это неlocalhost:10004
example.com
обратный прокси), контекст файловой системы является хорошим выбором. ИзРазделы конфигурации: что использовать, когда:
Выбор между контейнерами файловой системы и контейнерами веб-пространства на самом деле довольно прост. При применении директив к объектам, которые находятся в файловой системе, всегда используйте
<Directory>
или<Files>
. При применении директив к объектам, которые не находятся в файловой системе (например, веб-страница, сгенерированная из базы данных), используйте<Location>
.Важно никогда не использовать
<Location>
при попытке ограничить доступ к объектам в файловой системе. Это связано с тем, что многие различные местоположения веб-пространства (URL) могут соответствовать одному и тому же местоположению файловой системы, позволяя обойти ваши ограничения.
Вместоиспользование mod_rewrite для управления доступом, Apache имеет прямойКонтроль доступадирективы. Их использование более простое и делает вашу конфигурацию более удобной для чтения и управления.Require
Директиваотmod_authz_coreимеет ip
:
Require ip 192.0.2.100
Require ip 198.51.100.0/24
Require ip 2001:DB8:C0F:FEE::/64