Apache2+PHP-FPM环境下.htaccess禁止PHP文件访问失效问题排查
问题描述
在Apache2环境中,尝试通过.htaccess文件禁止访问特定PHP文件,配置如下:
<Files test.php> Require all denied </Files>
但该配置不起作用。不过禁止访问其他类型文件(如HTML)的配置却能正常生效:
<Files test.html> Require all denied </Files>
测试多种文件类型后发现,除PHP外均正常生效,当前使用PHP-FPM,请问问题出在哪里?
解决方案
问题已解决,感谢@life888888的指引。
问题根源是使用的面板在站点配置中添加了如下条目:
ProxyPassMatch ^(.*\.php)$ fcgi://127.0.0.1:9000/var/www/vhosts/example.com/httpdocs/$1
注释掉该行并替换为以下配置后问题解决:
<FilesMatch \.php$> SetHandler "proxy:fcgi://127.0.0.1:9000" </FilesMatch>
现在PHP脚本仍通过PHP-FPM运行,同时.htaccess及其他指令均可正常生效。再次感谢各位的帮助,尤其是@life888888。
内容的提问来源于stack exchange,提问作者andy
相关产品推荐
相关产品推荐

