htaccess 文件夹保护 + php7.0-fpm/fastcgi : .php 文件仍然可以访问
htaccess folder protection + php7.0-fpm/fastcgi : .php files still accessible
我在 Ubuntu 14.04.
上用 php7.0-fpm/fastcgi、apache 2.4 安装了一个小 droplet
除了一个小细节外,一切都很顺利:
问题是我想通过经典的 .htaccess 保护来保护文件夹,没什么特别的。
但是,如果我转到 "my-droplet-ip/my-protected-folder/my-file.php",即使配置了 htaccess,我仍然可以访问它。
如果我转到 "my-droplet-ip/my-protected-folder",login/pass 提示会按预期显示。
"my-droplet-ip/my-protected-folder/a-file.(html|png|ini...)"
的正常行为相同
我读过很多东西,比如 fastcgi 可以在 htaccess 之前 "process" php 文件,但我真的想不通 why/how.
有什么想法吗?
尤里卡
短篇小说,请勿使用:
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/
使用 FastCGI 处理 php 文件,因为似乎 ProxyPassMatch
指令在 .htaccess
.
之前计算
更好用:
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
那里有更多详细信息:https://ma.ttias.be/apache-2-4-proxypass-for-php-taking-precedence-over-filesfilesmatch-in-htaccess/
我在 Ubuntu 14.04.
上用 php7.0-fpm/fastcgi、apache 2.4 安装了一个小 droplet
除了一个小细节外,一切都很顺利:
问题是我想通过经典的 .htaccess 保护来保护文件夹,没什么特别的。
但是,如果我转到 "my-droplet-ip/my-protected-folder/my-file.php",即使配置了 htaccess,我仍然可以访问它。
如果我转到 "my-droplet-ip/my-protected-folder",login/pass 提示会按预期显示。 "my-droplet-ip/my-protected-folder/a-file.(html|png|ini...)"
的正常行为相同我读过很多东西,比如 fastcgi 可以在 htaccess 之前 "process" php 文件,但我真的想不通 why/how.
有什么想法吗?
尤里卡
短篇小说,请勿使用:
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/
使用 FastCGI 处理 php 文件,因为似乎 ProxyPassMatch
指令在 .htaccess
.
更好用:
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
那里有更多详细信息:https://ma.ttias.be/apache-2-4-proxypass-for-php-taking-precedence-over-filesfilesmatch-in-htaccess/