为了安全,我们会禁止静态文件目录执行 PHP 的权限,下面是 Apache 和 Nginx 下禁止 PHP 执行的办法。

Apache 下修改 .htaccess 文件禁止 PHP 执行

如果你使用的是 Apache,创建一个.htaccess文件,放到要禁止执行 PHP 的文件夹内,内容如下:

<Files ~ ".php">
    Order allow,deny 
    Deny from all 
</Files>

如果要禁止多个目录,可以使用上面的方法,在多个目录里放置 .htaccess 文件,也可以在根目录下的 .htaccess 文件里使用 Rewrite 进行设置。

RewriteEngine on RewriteCond % !^$
RewriteRule uploads/(.*).(php)$ – [F]
RewriteRule img/(.*).(php)$ – [F]
RewriteRule css/(.*).(php)$ –[F]

Nginx 下修改配置文件禁止 PHP 执行

Nginx 下禁止 PHP 执行需要修改 Nginx 的配置文件,如果针对单个目录:

location ~* ^/uploads/.*.(php|php5)$
{
    deny all;
}

如果针对多个目录:

location ~* ^/(css|uploads)/.*.(php|php5)$
{
    deny all;
}

修改完成之后,重启 Nginx 使配置文件生效。

现在很多的控制面板支持增加 Nginx 的配置文件,比如宝塔、Plesk等,修改完成,保存的时候会自动重启 Nginx 服务,还是很方便的。