Я использую .htaccess для защиты паролем файла на моем веб-сервере. Если введены неверные данные для входа, браузер снова просто отображает поле входа. Как я могу заставить браузер отправлять вместо этого 403 Forbidden?
Правильный ответ, когда пользователь использует неправильный пароль - 401, вместо этого, когда пользователь использует правильные учетные данные, но не разрешен, правильный ответ - 403.
Из RFC 2616:
401 Неавторизованный: "Запрос требует аутентификации пользователя. Ответ ДОЛЖЕН включать поле заголовка WWW-Authenticate (Раздел 14.47), содержащий вызов, применимый к запрошенному ресурсу. Клиент МОЖЕТ повторить запрос с подходящим полем заголовка авторизации (Раздел 14.8). Если запрос уже включал учетные данные авторизации, то ответ 401 указывает, что в авторизации для этих учетных данных отказано ... "
Из RFC 7231:
403 Запрещено: "... Сервер понял запрос, но отказывается его авторизовать ..."