При Basic Auth вначале сервер отвечает клиенту статусом 401.
Браузер отображает страницу с запросом логина/пароля.
Как вместо 401 получается 404 от Wordpress?
Если в настройках Apache с помощью
ErrorDocument для 401 указан какой-то путь, то происходит внутреннее перенаправление на этот адрес и весь список правил mod_rewrite выполняется заново.
Если файл не найден запрос отправляется в index.php и Wordpress меняет статуc на 404.
Можно в файле
/.htaccess
или
/custom/.htaccess
указать для 401 какой-нибудь существующий файл.
Тогда запрос не будет попадать в Wordpress.
ErrorDocument 401 /file.html
Если указать не путь к файлу, а какой-то текст.
ErrorDocument 401 " Some text "
То не будет выполнения правил mod_rewrite и запрос не попадёт в Wordpress.
Ну ещё вариант специальное значение default восстановит значение по умолчанию.
ErrorDocument 401 default
Другой вариант добавить в файл
/.htaccess
исключение для запросов со статусом 401 и пустить их в обход правил Wordpress.
RewriteCond %{ENV:REDIRECT_STATUS} =401
RewriteRule ^ - [L]
Ставить выше правил правил Wordpress.