php - 允许 php 值只在子目录中工作

标签 php nginx nginx-config

在我的 php.ini 中,我禁用了 allow_url_fopen。我想为我的/example 目录启用它,如下所示,但它不起作用。但是,如果我将指令从/example 移动到它上面的 ~.php$ 位置,那么它就可以正常工作。我在想/example 位置 block 从未被处理过。有什么想法可以让 url fopen 仅在/example 目录中工作吗?

server {
  location ~\.php$ {
    fastcgi_pass 127.0.0.1:9000;
    include fastcgi_params;
  }

  location /example {
    fastcgi_param PHP_ADMIN_VALUE "allow_url_fopen=1";
  }
}

最佳答案

nginx 选择一个location 来处理请求。参见 this document了解详情。

正则表达式 location block 优先于常规 prefix location block ,所以任何以 .php 将由您的 location ~\.php$ block 处理,无论它是否以 /example 开头。参见 this document了解详情。

如果您想创建一个发送额外 fastcgi 参数的 location,您将需要包含所有必需的 fastcgi 指令。

例如:

location ~\.php$ {
    fastcgi_pass 127.0.0.1:9000;
    include fastcgi_params;
}

location ^~ /example {
    location ~\.php$ {
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_param PHP_ADMIN_VALUE "allow_url_fopen=1";
    }
}

关于php - 允许 php 值只在子目录中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52192307/

相关文章:

php - 如何一次仅从一台计算机使用一个 ID/通行证登录

java - 使用 PHP 将 Android 数据添加到 MySQL

html - 通过 301 永久重定向到 https 的 http url 嵌入资源

css - 首先为 nginx 提供 .min.css 文件

google-app-engine - 502 Bad Gateway 错误 - 在从上游读取响应 header 时,上游发送了太大的 header

php - 在WooCommerce的“Quick View”窗口中显示自定义选择表单

php - 在评论系统中获取回复

ruby-on-rails - 当我从终端断开连接时,乘客 + nginx 失败

mongodb - 如何将 mongoDB Docker 镜像部署到 Elastic Beanstalk?

nginx - nginx.conf 中的 ssl_verify_depth 是什么意思?