如何阻止访问除根文件夹中的index.php之外的所有.php(通过.htaccess)?

Sli*_*liq 3 php apache .htaccess

注意:此问题已经多次被问过,但答案非常糟糕,完全错误和/或不符合上述情况(因为有几个名为index.php的文件).如果您愿意,请参阅[ 1 ].

我想阻止通过根文件夹中的.htaccess文件直接访问应用程序文件夹中的所有.php文件(请参阅文件结构图像).网上有一些解决方案,但他们错过了一件事:如果有多个名为index.php的文件,它们就不起作用(这是一个逼真的场景,如截图所示,请参阅视图中的文件/ xxx /文件夹):

问题:如何阻止访问除根文件夹中的index.php之外的所有.php文件?

在此输入图像描述

Nie*_*jes 5

在.htaccess中:

RewriteEngine on
RewriteRule ^/application - [F]
Run Code Online (Sandbox Code Playgroud)

[F]选项指示它对所有匹配的URL 发出403 Forbidden响应.

或者在/application包含的单独的.htaccess文件中添加:

deny from all
Run Code Online (Sandbox Code Playgroud)

或者在Apache vhost定义中:

<Location /application>
  deny from all
</Location>
Run Code Online (Sandbox Code Playgroud)