apache配置禁止访问网站根目录下的所有子文件夹中的php文件

现代的PHP框架通常只有一个入口文件,例如在public文件夹下,框架的核心文件都在public的上一级目录,同时public文件夹下还会存放一些图片,js,css等静态资源。通常这些都不需要执行php的权限,那么可以通过修改apache的配置文件来禁止这些目录的执行。通过网络搜索,通常只有禁止具体某一个文件夹的执行权限,但如果我要禁止多个目录,岂不是要写多段以下代码:


<Directory "F:/wamp/www/public/uploads/">
  <FilesMatch "\.(?i:php|php3|php4)$">
    Order allow,deny
    Deny from all
  </FilesMatch>
</Directory>

显然不方便,Directory 可以通过正则表达式来匹配目录:
注意:需要写到apahce配置文件里才有效


<Directory "F:/wamp/www/public/(.*)/">
  <FilesMatch "\.(?i:php|php3|php4)$">
    Order allow,deny
    Deny from all
  </FilesMatch>
</Directory>

这样当执行public文件夹下的子文件夹里的php文件时,页面将会显示Forbidden

发表评论

邮箱地址不会被公开。 必填项已用*标注