Мне нужно применить HTTP-аутентификацию только при публичном использовании веб-сайта, но я не применяю его на моем локальном хосте. Это .htaccess
, который, я думаю, должен работать. Но это не работает - он все еще спрашивает у меня user / pass.
Что я делаю неправильно?
SetEnvIf Remote_Addr ^127\.0\.0\.1$ develmode
<IfDefine !develmode>
AuthType Basic
AuthName "ADMIN"
AuthUserFile /path/to/.htpasswd
Require valid-user
</IfDefine>
mod_setenvif
, конечно, включен.
В Apache 2.4 , allow
, deny
и satisfy
больше не используются, ограничение IP-адресов также выполняется с помощью require
:
AuthUserFile /path/to/.htpasswd
AuthName "Restricted Access"
AuthType Basic
Require ip 127.0.0.1
Require valid-user
Если какая-либо из директив Require выполнена, запрос разрешается. Если вы хотите потребовать и того, и другого, сгруппируйте их в блок <RequireAll>
.
Для ограничения локального доступа вы можете использовать специальный синтаксис Require local
вместо Require ip 127.0.0.1
Подробнее: http://httpd.apache.org/ документы / 2.4 / моды / mod_authz_core.html # требуют