Подтвердить что ты не робот

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
4b9b3361

Ответ 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