【问题标题】:Allow php value to only work in a subdirectory允许 php 值仅在子目录中工作
【发布时间】:2019-02-11 00:32:54
【问题描述】:

在我的 php.ini 中,我禁用了 allow_url_fopen。我想为我的 /example 目录启用它,如下所示,但它不起作用。但是,如果我将指令从 /example 移动到它上面的 ~.php$ 位置,那么它可以正常工作。我在想 /example 位置块永远不会被处理。任何想法如何允许 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";
  }
}

【问题讨论】:

    标签: php nginx nginx-config


    【解决方案1】:

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

    正则表达式 location 块优先于常规前缀 location 块,因此任何以.php 结尾的URI 都将由您的location ~\.php$ 处理块,无论它是否以 /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";
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-20
      相关资源
      最近更新 更多