插件窝 干货文章 nginx如何禁止访问php

nginx如何禁止访问php

PHP Nginx 方法 location 313    来源:    2025-04-24

在Nginx中禁止访问PHP文件的方法

有几种方法可以在Nginx中禁止访问PHP文件,以下是常见的实现方式:

方法1:通过location规则禁止

location ~ \.php$ {
    deny all;
    return 403;
}

方法2:禁用PHP处理(如果不需要执行PHP)

location ~ \.php$ {
    # 不传递请求给PHP处理器
    return 403;
}

方法3:针对特定目录禁止PHP访问

location ^~ /uploads/.*\.php$ {
    deny all;
    return 403;
}

方法4:修改PHP处理配置(如果使用PHP-FPM)

location ~ \.php$ {
    # 注释掉或删除fastcgi_pass指令
    # fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    deny all;
    return 403;
}

方法5:使用if语句(不推荐,但有时有效)

if ($request_uri ~ \.php$) {
    return 403;
}

注意事项

  1. 修改配置后需要重新加载Nginx:

    sudo nginx -t && sudo systemctl reload nginx
    
  2. 如果您完全不需要PHP支持,可以直接删除或注释掉server块中所有与PHP相关的配置。

  3. 对于生产环境,建议使用方法1或方法3,它们更精确且性能更好。

  4. 确保您的配置不会意外阻止其他合法请求,修改前建议先测试配置语法。