У меня на моем виртуальном хосте есть:
<LocationMatch "/pressonly">
AuthType Basic
AuthName "Press Only"
AuthUserFile /home/pur/.htpasswd
Require valid-user
</LocationMatch>
Он показывает, что вход в систему выполнен нормально, но если я нажму «Отмена», я все равно получаю страницу. Что я упускаю / делаю неправильно?
Обновить:
Я думаю, после некоторого дополнительного исследования я обнаружил, что мое Location / LocationMatch должно пройти после выполнения любой перезаписи. Поэтому мой vhost должен быть:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
<Location /pressonly>
AuthType Basic
AuthName "Press Only"
AuthUserFile /home/pur/.htpasswd
Require valid-user
</Location>
И у меня не должно быть файла .htaccess. Однако использование вышеуказанного не приводит к перезаписи.
Добавьте порядок запретить, разрешить утверждения, а также запретить от всех. Вам также понадобится директива удовлетворения. Я подозреваю, что ваше разрешение по умолчанию срабатывает после того, как вы отмените аутентификацию.
<Location /pressonly>
AuthType Basic
AuthName "Press Only"
AuthUserFile /home/pur/.htpasswd
Require valid-user
order allow,deny
deny from all
Satisfy any
</Location>
Обновление: не должно быть пробела между разрешить и запретить.