问题描述
使 PHP-FPM security.limit_extensions
不区分大小写;
我已将选项设置为:
security.limit_extensions = .PHP .PHP3 .PHP4 .PHP5 .PHP7 .html .phtml .PHPs .js
为什么我在其中使用 .js?因为我有动态 JS 内容,有时会改变一些东西......
但是当我将文件扩展名更改为 .HTML 或 .JS 时,它会抛出 403 Forbidden 消息。 >
它只适用于小写。
解决方法
最愚蠢的方法是简单地写出设置中所有可能的案例变体。下面的 bash 命令
echo security.limit_extensions = .{P,p}{H,h}{P,p}{,3,4,5,7,S,s} .{P,p,}{H,h}{T,t}{M,m}{L,l} .{J,j}{S,s}
将生成它们,即:
security.limit_extensions = .PHP .PHP3 .PHP4 .PHP5 .PHP7 .PHPS .PHPs .PHp .PHp3 .PHp4 .PHp5 .PHp7 .PHpS .PHps .PhP .PhP3 .PhP4 .PhP5 .PhP7 .PhPS .PhPs .Php .Php3 .Php4 .Php5 .Php7 .PhpS .Phps .pHP .pHP3 .pHP4 .pHP5 .pHP7 .pHPS .pHPs .pHp .pHp3 .pHp4 .pHp5 .pHp7 .pHpS .pHps .phP .phP3 .phP4 .phP5 .phP7 .phPS .phPs .php .php3 .php4 .php5 .php7 .phpS .phps .PHTML .PHTMl .PHTmL .PHTml .PHtML .PHtMl .PHtmL .PHtml .PhTML .PhTMl .PhTmL .PhTml .PhtML .PhtMl .PhtmL .Phtml .pHTML .pHTMl .pHTmL .pHTml .pHtML .pHtMl .pHtmL .pHtml .phTML .phTMl .phTmL .phTml .phtML .phtMl .phtmL .phtml .HTML .HTMl .HTmL .HTml .HtML .HtMl .HtmL .Html .hTML .hTMl .hTmL .hTml .htML .htMl .htmL .html .JS .Js .jS .js
但是,我建议您只将扩展名更改为小写。您可以使用诸如 rename
之类的实用程序来做到这一点:
shopt -s globstar
rename 's!(\.\w+)+$!lc $&!e' **/*.*