Htaccess - используя пароль или белый список ip
Поэтому я хочу ограничить доступ к URL-адресу. Теперь, если они исходят из заданного IP-адреса, они не должны запрашивать пароль. Если они не поступают с IP-адреса givin, тогда им будет предложено ввести пароль.
так что либо либо из:
AuthUserFile /some/path/.htpasswd
AuthName "Please Log In"
AuthType Basic
require valid-user
и
order deny,allow
deny from all
allow from x.x.x.x
Ответы
Ответ 1
Вы можете использовать директиву Apache "Satisfy" .
Вот пример его использования:
AuthType Basic
AuthName "Please Log In"
AuthUserFile /some/path/.htpasswd
Require valid-user
Order deny,allow
Deny from all
Allow from 127.0.0.1
Satisfy any
Доступ без пароля разрешен только с 127.0.0.1.
Надеюсь, что это поможет.
Ответ 2
С Apache 2.4 Satisfy
по-прежнему доступен, но устаревший
Примечание
Директивы, предоставленные mod_access_compat, устарели mod_authz_host. Смешение старых директив, таких как Order, Allow или Deny с новыми, например Require, технически возможно, но не рекомендуется. Этот модуль был создан для поддержки конфигураций, содержащих только старые директивы для облегчения обновления 2.4. Для получения дополнительной информации ознакомьтесь с руководством по обновлению.
В вашем случае Allow from 1.2.3.4
заменяется на Require ip 1.2.3.4
Объединение нескольких Require
(например, Require valid-user
и Require ip
) может выполняться Авторизация контейнеров. Поэтому, говоря, что клиент должен либо предоставить пароль, либо получить определенный IP-адрес, будет выполняться путем окружения директив с помощью RequireAny
, например
<RequireAny>
Require valid-user
Require ip 1.2.3.4
</RequireAny>
Хотя это особый случай, описанный в конце Require
Когда несколько директив Require используются в одном разделе конфигурации и не содержатся в другой директиве полномочий, такой как <RequireAll>
, они неявно содержатся в директиве <RequireAny>
. Таким образом, первая авторизация пользователя разрешает весь запрос, а последующие директивы Require игнорируются.
Другими словами, RequireAny
здесь необязателен, и вы можете просто перечислить
Require valid-user
Require ip 1.2.3.4