EDIT
Есть простой способ сделать это. В вашем .htaccess добавьте
ErrorDocument 401 /path/to/log.php
Этот log.php
затем вызывается при неудачной попытке входа в систему (вы можете также поместить ее в защищенный каталог, она будет достигнута даже при неудачной попытке входа в систему). Обратите внимание, что браузер не знает, нуждается ли какой-либо ресурс в аутентификации, поэтому вы всегда получите удар с первой попытки. Эти попытки, однако, не будут включать никакого имени пользователя, и вы можете обнаружить их (ну, вы можете отличить их от того, когда пользователь не вводит имя пользователя, но вы поняли), проверив, пусто ли $_SERVER['PHP_AUTH_USER']
.
Оригинал
Ну нет, как вы говорите /index.php
никогда не достигается.
Что вы можете сделать, так это вовсе не полагаться на Apache и обрабатывать аутентификацию только с помощью PHP. На этой странице справки показано, как это сделать. Это имеет большой недостаток. Допустим, вы защищали весь каталог. Этот каталог содержит файлы PHP, изображения и еще много чего. Теперь, чтобы обеспечить аутентификацию, вы должны направить все через файл PHP. Если у вас были только файлы PHP, вы можете сделать это с помощью include. Если у вас есть статическое удовлетворение, вы должны направить его с помощью правила перезаписи через файлы PHP, которые считывают и выводят статическое содержимое, что ухудшает производительность.