我确信这是一个在某个地方被问过的问题,如果有的话,请原谅我,但谷歌搜索并没有给我任何有形的东西。
以下是我的情景:
我使用apache http basic auth保护web目录。所以我在根文件夹中有我的.htaccess,我的httpd.conf配置为覆盖所有,以便考虑.htaccess。我的.htaccess的内容如下:
AuthType Basic
AuthName“test”
AuthUserFile /etc/httpd/.test_pass
需要有效用户
.test_pass已成功设置htpasswd。通过浏览器或任何html文件访问Web根文件夹时,我会正确弹出身份验证。使用密码可以获得预期的访问权限。
但是当我访问php页面时,不会出现身份验证弹出窗口并显示php页面。
这是我的设置:
我需要能够通过apache基本身份验证设置用户名/密码身份验证,该身份验证可以保护目录中的所有文件,包括php文件。
我正在使用开源软件;因此,修改软件代码是最后的手段。
是否有针对php-fpm和mod_proxy_fcgi的解决方案?
由于
答案 0 :(得分:3)
经过数小时的研究后,我明白发生这种情况的原因是因为ProxyPassMatch指令是第一个要处理的指令,这导致apache忽略.php扩展名的其他指令。
为了能够通过proxy_fcgi_module使用php-fpm的其他apache指令,应该使用filesmatch指令而不是proxypassmatch。
语法如下:
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>