Я уверен, что это вопрос, который был задан где-то, если так извините, но поиск в Google не дал мне ничего осязаемого.
Вот мой сценарий:
Я защищаю веб-каталог с помощью Apache HTTP Basic Auth. Итак, у меня есть .htaccess в корневой папке, и мой httpd.conf настроен на переопределение всего, так что он принимает во внимание .htaccess. Содержание моего .htaccess выглядит следующим образом:
AuthType Basic
AuthName «test»
AuthUserFile /etc/httpd/.test_pass
Требуется действительный пользователь
.test_pass был успешно установлен с помощью htpasswd. При доступе к корневой веб-папке через браузер или любой html-файл, я получаю корректную проверку подлинности. Использование пароля дает мне ожидаемый доступ.
Но когда я захожу на страницу php, всплывающее окно аутентификации не появляется, и страница php отображается.
Вот мои настройки:
Мне нужно иметь возможность установить аутентификацию имени пользователя и пароля через базовую авторизацию apache, которая защищает все файлы, включая файлы php в каталоге.
Я использую программное обеспечение с открытым исходным кодом; поэтому изменение кодов программного обеспечения является самым последним средством.
Есть ли решение для / php-fpm и mod_proxy_fcgi?
Спасибо
После нескольких часов исследований я понял, что причина этого заключается в том, что директива ProxyPassMatch является первой директивой, подлежащей обработке, и это заставляет apache игнорировать другие директивы для расширений .php.
Чтобы использовать другие директивы apache с php-fpm через proxy_fcgi_module, лучше использовать директиву filesmatch вместо proxypassmatch.
Синтаксис выглядит следующим образом:
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"</FilesMatch>
Других решений пока нет …