在实际部署网站(尤其是 WordPress、CMS、或具备文件上传功能的网站)时,上传目录往往不应执行 PHP 文件,以避免被植入木马脚本。以下提供 Nginx 与 Apache 的常用安全配置示例。
Nginx 配置示例
禁止在指定目录(如:wp-content、uploads、wp-includes、images 等)执行 .php / .php5 / .js 文件:
location ~ /(wp-content|uploads|wp-includes|images)/.*\.(php|php5|js)$ {
deny all;
}
用途: 阻止上传目录下的动态脚本被执行,提升站点安全性。
提示: 更适合 WordPress、Laravel、Discuz 等支持静态资源上传的网站。
Apache 配置示例
Apache 中可通过不同方式禁止 PHP 文件被解析或执行。
方法一:禁用目录下的 PHP 引擎(推荐)
<Directory /uploads/test>
php_flag engine off
</Directory>
效果: 该目录下所有
.php文件均不会被解析执行。注意: 适用于启用了
mod_php的环境。
方法二:直接阻止 PHP 文件访问
<Directory ~ "^/uploads/test/.*">
<Files ~ "\.(php|php5)$">
Order allow,deny
Deny from all
</Files>
</Directory>
效果: 阻止用户访问指定目录下的 PHP 文件。
适用: 无论 PHP 模块如何加载,此规则都可限制访问。
建议
- 上传目录应仅允许图片、文档等静态文件,不应执行脚本。
- 确保目录权限(如 755 / 644)正确配置。
- 结合 WAF、安全插件、防火墙 提高整体安全性。







